gpt4 book ai didi

共享对象的lua加载路径

转载 作者:行者123 更新时间:2023-12-01 23:50:16 25 4
gpt4 key购买 nike

我在 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 在哪里可以找到用 C 编写的库的路径变量是 package.cpath .
package.path用于用 Lua 编写的库。

关于共享对象的lua加载路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com