2014-05-18 86 views
2
調用C

我試圖this example並且有一些問題的Lua:錯誤從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中librar ies和headerfiles位於同一個文件夾中。

回答

1

由於您已將Lua安裝在您的主目錄而不是系統文件夾下(例如/usr),加載程序在運行程序時不知道在哪裏找到Lua動態庫文件。

您可以通過設置LD_LIBRARY_PATH環境變量指向包含Lua的動態庫文件的文件夾,例如解決這個問題:

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

謝謝您的回答,但Lua是一個系統文件夾下安裝。我有一些問題鏈接庫來編譯.c文件,並將兩個庫文件和頭文件複製到此文件夾中。 – SLx64

+0

我試過你的解決方案,並得到了另一個錯誤。一些在lib文件夾中缺少的庫。非常感謝你! – SLx64