调用 Lua 中的 C 函数时出错。

我尝试了这个例子并且在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文件时,我会得到以下错误消息:

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库和头文件在同一个文件夹中。

点赞
用户19405
用户19405

由于您将 Lua 安装在您的主目录下,而不是系统文件夹(例如 /usr)下,所以加载器不知道在运行程序时如何找到 Lua 动态库文件的位置。

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

export LD_LIBRARY_PATH=/home/lukas/Workspace/Lua/LuaC
2014-05-18 17:33:44