love2d合并可执行文件中的模块失败,但在运行项目文件夹中的love.exe时成功
我按照love2d wiki上的步骤为我的游戏创建了一个合并可执行文件。当我启动生成的合并exe时,我会收到以下错误:
Error: main.lua:12: module 'util/strict' not found:
no field package.preload['util/strict']
no 'util/strict' in LOVE game directories.
no file 'util/strict.dll' in LOVE paths.
no file 'flowerpowers/scripts/util/strict.lua'
no file 'flowerpowers/data/util/strict.lua'
stack traceback:
[C]: in function 'require'
main.lua:12: in main chunk
[C]: in function 'require'
[string "boot.lua"]:429: in function <[string "boot.lua"]:275>
[C]: in function 'xpcall'
然而,当我通过将文件夹(即镜像zip压缩过程中制作的那个,两个直接包含main.lua、conf.lua以及项目所有子文件夹的文件夹)拖到love.exe上,它就像一场梦一样工作。
这是我的main.lua的顶部,直到它崩溃的那一行(注意:注释掉的BASEDIR是为了让它工作,但它同时打破了合并exe和拖拽文件夹方法):
io.stdout:setvbuf("no")
love.keyboard.setKeyRepeat(true)
BASEDIR = "flowerpowers"
-- BASEDIR = ""
package.path = BASEDIR..'/scripts/?.lua;'..BASEDIR..'/data/?.lua'
package.cpath = ""
package.preload = {}
require "util/strict"
我尝试了一些其他类似问题上建议的各种解决方案的组合,但什么都不起作用:将package.path附加到我上面设置的字符串,使用"\"代替"/",使用"."代替"/",在我的package.path字符串中明确包含项目的所有子文件夹,并从要求的目标中删除子文件夹。不幸的是,什么都不起作用。
这是我的文件夹结构:
+ FlowerPowers(我压缩内容的文件夹,不包括文件夹本身)
- main.lua
- conf.lua
+ data(包含其他文件和文件夹)
+ scripts(包含其他文件和文件夹,但仅列出相关文件)
+ util
- strict.lua
+ bin
- love.exe
- [love DLL]
+ distro
- FlowerPowers.exe(合并可执行文件)
- [love DLL]
希望这就足够开始了,但如果我可以提供任何其他有用的信息,只要让我知道就行了。完全被为什么在运行我的文件夹时它能够在love.exe上工作,但不能在它们被合并时工作的事情困惑了。
编辑:我的合并exe似乎在从包含整个项目文件夹的文件夹运行时可以工作(即上面结构中的FlowerPowers)。但如果该文件夹丢失,则会出现此崩溃。
编辑#2:找到了解决方案!详见此处:https://love2d.org/forums/viewtopic.php?f=4&t=83142&p=206049#p206049
工作代码如下:
BASEDIR = love.filesystem.getRealDirectory("/scripts"):match("(.-)[^%.]+$")
BASEDIR = string.sub(BASEDIR, 1, string.len(BASEDIR)-1)
local myPath = BASEDIR..'/scripts/?.lua;'..BASEDIR..'/data/?.lua'
local myPath2 = 'scripts/?.lua;/data/?.lua'
package.path = myPath
love.filesystem.setRequirePath( myPath2 )
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
