2

我正在尝试让 IUP 在 Ubuntu 上运行。我从 sourceforge 下载了二进制文件,这些库似乎在 /usr/lib/libiup*.so 中,但是当我编写如下脚本时:

require("iuplua")
iup.Message('Testing App!', 'Finished Successfully!')

我收到一个错误:

lua: attempt to call a nil value
stack traceback:
    [C]: ?
    [C]: in function 'require'
    test.lua:1: in main chunk
    [C]: ?

查看它,我看到一条消息指出有人似乎已经修复了它 - 他们的“LD_LIBRARY_PATH 没有指向正确的 cd 和 im 目录”或类似的东西。我似乎无法用 LD_LIBRARY_PATH 环境变量纠正我的问题。我看到 2008 年的另一条注释说“IUPLua 二进制文件具有导致错误的硬编码 lua 字节码”。我试图从源代码编译,但我收到与 cd.h 相关的错误。

任何帮助将不胜感激。谢谢!

4

1 回答 1

2

这里有一些你可以检查的东西,也许它会有所帮助。

当您使用require加载模块时,Lua 使用包路径来确定在哪里查找模块。

package.path:Lua 查找 .lua 模块的位置
package.cpath:Lua 查找 .so/.dll 模块的位置

查看 Lua 手册的这一部分:Modules。具体来说,关于package.pathpackage.cpath的部分。

您可以检查当前路径是什么样的:

print(package.path.."\n"..package.cpath)

您可以附加如下路径:

package.path = package.path..";/usr/lib/?.lua"
package.cpath = package.cpath..";/usr/lib/?.so"
于 2011-07-04T04:16:43.640 回答