链接特殊的共享库

时间:2014-03-02 03:45:33

标签: c linker

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

我无法弄清楚我做错了什么,但我修改过的这个特殊步骤失败了:

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

(其中[...]是刚刚构建的.o个文件的列表。当我构建时,我收到错误

/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

检查LIBRARY_PATH确认所需的库在那里:

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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

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