我尝试了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库和头文件位于同一文件夹中。
答案 0 :(得分:1)
由于您已在主目录而不是系统文件夹(例如/usr
)下安装了Lua,因此加载程序在运行程序时不知道在哪里可以找到Lua动态库文件。
您可以通过将LD_LIBRARY_PATH
环境变量设置为指向包含Lua动态库文件的文件夹来解决此问题,例如:
export LD_LIBRARY_PATH=/home/lukas/Workspace/Lua/LuaC