lua加载共享对象的路径

时间:2014-11-14 09:00:47

标签: lua

我在Kubuntu 12.04下使用lua 5.3beta。我使用swig和gcc4.9包装了一个c-extension进行编译和链接。如果我将mylib.so放在我的lua脚本所在的同一目录中:

require "mylib"

工作正常。但如果mylib.so不在同一目录中,我会收到错误消息

module 'mylib' not found 

我将mylib的路径添加到LD_LIBRARY_PATH并插入

package.path  = package.path .. ';' .. path2mylib .. '/?

在我的脚本中。随着

package.path  = package.path .. ';' .. path2mylib .. '/?.so

错误信息是:

mylib.so:1: unexpected symbol near '<\127>

我猜lua尝试加载mylib.so,假设它是一个lua脚本。 似乎lua只在某些标准路径中查找共享对象,包括./,添加到package.path的所有路径都被视为lua文件的路径。

有没有办法让lua加载我的c-extension而不将其放入其中一个标准库路径?

1 个答案:

答案 0 :(得分:3)

告诉Lua在哪里查找用C语言编写的库的路径变量是package.cpath

package.path适用于以Lua编写的库。