在Ubuntu上使用Lua和IUP

我正在尝试在Ubuntu上使用IUP。我从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相关的错误。

任何帮助将非常感激。谢谢!

原文链接 https://stackoverflow.com/questions/4687729

点赞
stackoverflow用户415823
stackoverflow用户415823

这里有一些你可以查看的内容,也许会有所帮助。

当你使用 require 加载一个模块时,Lua 使用 package 路径来确定在哪里查找模块。

package.path:Lua 查找 .lua 模块的路径

package.cpath:Lua 查找 .so/.dll 模块的路径

请查看此 Lua 手册的这一部分:模块。具体来说,是关于 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-04 04:16:43