2015-05-13 25 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

相关问题