从Lua调用C时出错

时间:2014-05-18 16:17:45

标签: c lua

我尝试了this example并且在Lua遇到了一些问题:

icc -Wall -shared -fPIC -o power.so hellofunc.c -I/home/lukas/Workspace/Lua/LuaC -L/home/lukas/Workspace/Lua/LuaC/ -llua52

编译hellofunc.c文件没有问题,但是当我尝试运行Lua-File时,我收到以下错误消息:

lua LuaC.lua
lua: error loading module 'power' from file './power.so':
        liblua52.so: cannot open shared object file: No such file or directory
stack traceback:
        [C]: in ?
        [C]: in function 'require'
        LuaC.lua:1: in main chunk
        [C]: in ?

LuaC.lua

require("power")
 print(square(1.414213598))
 print(cube(5))

Lua库和头文件位于同一文件夹中。

1 个答案:

答案 0 :(得分:1)

由于您已在主目录而不是系统文件夹(例如/usr)下安装了Lua,因此加载程序在运行程序时不知道在哪里可以找到Lua动态库文件。

您可以通过将LD_LIBRARY_PATH环境变量设置为指向包含Lua动态库文件的文件夹来解决此问题,例如:

export LD_LIBRARY_PATH=/home/lukas/Workspace/Lua/LuaC