如何在 Windows 上将 LuaJIT 集成到 LuaRocks 中?
2014-9-16 0:33:28
收藏:0
阅读:89
评论:1
我下载了LuaJIT的源代码并使用msvc120.dll(VS 2013 x64)进行了编译。当我从命令行运行它时,我没有问题地执行了一些基本的lua。现在,LuaJIT安装指南提到要将luajit.exe和lua51.dll移动到它们自己的文件夹中。然后它说要创建一个lua文件夹,在这个lua文件夹下面创建一个名为jit的文件夹,并将src/jit的内容移动到新创建的jit文件夹下面。
据我了解,我的文件夹应该看起来是这样的并包含:
luajit.exe
lua51.dll
/lua
/jit
bc.lua
[其余jit文件]
vmdef.lua
这正确吗,还是我缺少文件?
现在,在我构建了我的LuaJIT后,我尝试将其连接到我的luarocks,以充当我的解释器,使用
install.bat /LUA C:\LuaJIT\2.0.3\[包含上述内容的文件夹]
然而,这无法找到头文件。然后,我将头文件复制到上面的文件夹中,并将其连接起来,但我从来无法在指向LuaJIT时实际编译任何内容。 编辑:我得到的错误是以下内容,
C:\LuaJIT\2.0.3\bin\lua51.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x2D0
Error: Failed installing dependency: https://rocks.moonscript.org/luafilesystem-1.6.2-2.src.rock - Build error: Failed compiling module lfs.dll
处理这个的正确方法是简单地指向我的lua二进制文件,然后利用LuaJIT运行我的文件,还是我在连接LuaJIT和luarocks方面做错了什么?前者似乎在很大程度上可以工作,因为我只遇到了一个库编译问题,即lua-cjson。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的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 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
我曾经遇到了完全相同的问题,但是他们在这里找到了解决方案:
https://github.com/keplerproject/luafilesystem/issues/22
我知道对于“静态链接DLL”,有一个所谓的“导出”
.lib文件,它被传递给链接器(而不是DLL本身)。因此,例如,当编译时,LuaRocks正在执行以下操作:
cl /nologo /MD /O2 -c -Fosrc/mime.obj -ID:/LuaJIT-2.0.4/include/ src/mime.c -DLUA_COMPAT_APIINTCASTS -DLUASOCKET_DEBUG -DNDEBUG -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport) mime.c link -dll -def:core.def -out:mime/core.dll D:/LuaJIT-2.0.4/bin/lua51.dll src/mime.obj我的LuaJIT是从源代码编译的,位于
D:\LuaJIT-2.0.4\src,但我自己创建了两个文件夹:D:\LuaJIT-2.0.4\include,其中包含从src中复制的所有*.h文件,以及D:\LuaJIT-2.0.4\bin,其中包含luajit.exe、lua51.dll,然后是lua51.exp和lua51.lib。仍然是同样的错误,但这是正确的轨迹。修复
现在,检查一下您的LuaRocks配置文件在哪里:
luarocks.bat help向下滚动到类似以下的部分:
CONFIGURATION Lua version: 5.1 Configuration files: System: D:/luarocks/config-5.1.lua (ok) User : (... snip ...)编辑系统配置文件,具体查看以下部分:
variables = { MSVCRT = 'VCRUNTIME140', LUALIB = 'lua51.dll' }在这里!
LUALIB应该是.lib文件。如果您的导出lib与DLL并列,您只需要改变:variables = { MSVCRT = 'VCRUNTIME140', LUALIB = 'lua51.lib' --在这里! }验证
现在:
请注意,传递给链接器的第一个参数。