2014-03-02 111 views
0

我需要链接一个共享库(LuaSocket)我正在编译另一个不在正常位置的特殊共享库liblua5.1。为此,我正在修改Makefile。链接一个特殊的共享库

我想不出我做错了什么,但我修改了这个特定的步骤失败:

LIBRARY_PATH=/media/sda2/crank/lib gcc -O -shared -fpic -l liblua5.1 -o socket.so.2.0.2 [...] 

(其中[...]是刚刚建成的.o文件的列表)。当我建,我得到错误的LIBRARY_PATH

/usr/lib/gcc/arm-poky-linux-gnueabi/4.8.1/../../../../arm-poky-linux-gnueabi/bin/ld: cannot find -lliblua5.1 
collect2: error: ld returned 1 exit status 
make: *** [socket.so.2.0.2] Error 1 

检查确认所需要的库有:

# ls /media/sda2/crank/lib/ 
lgre.so libgre.so libgreio.a liblua.so liblua5.1.so libsbexternal.so 

我在做什么错?

回答

2

-l liblua5.1更改为-llua5.1

而不是设置LIBRARY_PATH,为什么不使用-L选项?例如:-L/media/sda2/crank/lib

+0

光荣,谢谢。我永远不会完全理解动态链接的错综复杂。 – thirtythreeforty

+0

“lib”会自动添加到库名称的开头。 – immibis