OSX加载dylib Lua模块

4
尝试在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是OSX版本的.so(稍有变化)。所以我希望Lua解释器寻找一个.dylib文件。
我应该尝试在OSX上将我的库编译成.so吗?(如果是这样,如何操作?)还是我应该更改与Lua解释器相关的内容?
2个回答

5

如果.dynlib可加载(如Lua编程第26章所述),则无需更改解释器。在要求模块之前,您可以更改package.cpath以查找.dynlibs而不是.so文件。


0
package.cpath = package.cpath .. ";?.dylib"
print(package.cpath)
rtn = require ("libme")
print(rtn)

在OSX上运行得非常好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接