当尝试在 OSX 上加载 Lua 模块时,我收到以下错误。
lua: level1.lua:1: module 'libexpand_luaLib' not found:
no field package.preload['libexpand_luaLib']
no file './libexpand_luaLib.lua'
no file '/opt/local/share/lua/5.1/libexpand_luaLib.lua'
no file '/opt/local/share/lua/5.1/libexpand_luaLib/init.lua'
no file '/opt/local/lib/lua/5.1/libexpand_luaLib.lua'
no file '/opt/local/lib/lua/5.1/libexpand_luaLib/init.lua'
no file './libexpand_luaLib.so'
no file '/opt/local/lib/lua/5.1/libexpand_luaLib.so'
no file '/opt/local/lib/lua/5.1/loadall.so'
stack traceback:
[C]: in function 'require'
level1.lua:1: in main chunk
[C]: ?
lua 解释器正在尝试加载 .so 文件而不是 .dylib 文件。我的印象是 .dylib 是 .so 的 OSX 等效项(略有变化)。所以我希望 Lua 解释器寻找 .dylib 文件。
我应该尝试将我的库编译成 OSX 上的 .so 吗?(如果是的话怎么做?)或者我应该更改与 lua 解释器相关的内容?
最佳答案
无需更改解释器(前提是 .dynlib 可加载(按照 Programming in Lua, chapter 26 ))。 在需要该模块之前,您可以更改 package.cpath 以查找 .dynlibs 而不是 .so。
关于macos - OSX 加载 dylib Lua 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900816/