我正在尝试让 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 相关的错误。
任何帮助将不胜感激。谢谢!
最佳答案
这里有一些你可以检查的东西,也许它会有所帮助。
当您使用require 加载模块时,Lua 使用包路径来确定在哪里寻找模块。
package.path: Where Lua looks for .lua modules
package.cpath: Where Lua looks for .so/.dll modules
看看 Lua 手册的这一部分:Modules .具体来说,关于 package.path 和 package.cpath 的部分。
你可以查看当前的路径是怎样的:
print(package.path.."\n"..package.cpath)
您可以附加如下路径:
package.path = package.path..";/usr/lib/?.lua"
package.cpath = package.cpath..";/usr/lib/?.so"
关于ubuntu - 在 Ubuntu 上使用 IUP 和 Lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4687729/