2015-05-13 61 views
0

我想測試我的主機luajit的C API,下面是我的代碼:libluajit-5.1.so.2:水溼打開共享對象文件:沒有這樣的文件或目錄

#include <stdio.h> 
#include <luajit.h> 
#include <lualib.h> 
#include <lauxlib.h> 

int main() 
{ 
    lua_State *L; 
    L=luaL_newstate(); 
    luaL_openlibs(L); 
    lua_pushnumber(L,10); 
    lua_pushstring(L,"hello"); 
    lua_pushboolean(L,0); 
    lua_close(L); 
    //printf("luatop:%d\n",lua_gettop(L)); 
    return 0; 
} 

然後我編譯它用gcc:

gcc -I /usr/local/include/luajit-2.0/ -lluajit-5.1 test_lua.c -o test_lua 

但是當我運行它

$ ./test_lua 

它提示的是,

./test_lua: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory 

有人知道如何解決它?

+0

運行'strace的-e開/ test_lua'應該告訴你的共享庫它試圖的實際路徑。加載。然後看看它有什麼問題(錯誤消息聲稱它不存在)。這可能是你需要安裝一些開發包或設置'LD_LIBRARY_PATH' ... – siffiejoe

+0

'strace'是Linux的唯一,順便說一句。 BSD有'ktrace' /'kdump',OSX有'dtruss'等。 – siffiejoe

回答

1

設置LD_LIBRARY_PATH變量,使其參考libluajit-5.1.so.2 live目錄。

CMD:

出口LD_LIBRARY_PATH =在/ usr/local/lib目錄:$ LD_LIBRARY_PATH

相關問題