【问题标题】:lua load path for shared objects共享对象的lua加载路径
【发布时间】:2015-01-11 15:00:26
【问题描述】:

我在 Kubuntu 12.04 下使用 lua 5.3beta。我使用 swig used 和 gcc4.9 包装了一个 c 扩展,用于编译和链接。如果我将 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 扩展而不将其放入标准库路径之一?

【问题讨论】:

    标签: lua


    【解决方案1】:

    告诉 Lua 在哪里可以找到用 C 编写的库的路径变量是 package.cpath

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 2018-04-07
      • 2011-11-29
      • 2016-02-26
      相关资源
      最近更新 更多