Macos OSX加载动态库Lua模块

Macos OSX加载动态库Lua模块,macos,lua,dylib,shared-libraries,Macos,Lua,Dylib,Shared Libraries,当尝试在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

当尝试在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文件


我应该尝试将我的库编译成一个.so on OSX吗?(如果是这样的话,怎么做?)还是应该更改与lua解释器相关的内容?

无需更改解释器(前提是.dynlib是可加载的(根据))。 在需要模块之前,可以将package.cpath更改为查找.dynlibs而不是.so

package.cpath = package.cpath .. ";?.dylib"
print(package.cpath)
rtn = require ("libme")
print(rtn)
在osx上工作很好