ld找不到-l <library> </library>

时间:2012-08-24 10:14:37

标签: gcc ubuntu linker shared-libraries ld

我在ubuntu 12.04上安装pyipopt时遇到问题。在链接期间,我收到错误:

/usr/bin/ld: cannot find -lcoinhsl

即使我知道已安装此库并且/home/mostafa/MyBuilds/CoinIpopt/build/lib/

中提供了.so和.la文件

有没有人有解决方案?

下面是运行setup.py build的完整返回:

root@ubuntu:~/MyBuilds/pyipopt# sudo python setup.py build
running build
running build_ext
building 'pyipopt' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/home/mostafa/MyBuilds/CoinIpopt/build/include/coin/ -I/usr/include/python2.7 -c src/callback.c -o build/temp.linux-x86_64-2.7/src/callback.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/home/mostafa/MyBuilds/CoinIpopt/build/include/coin/ -I/usr/include/python2.7 -c src/pyipopt.c -o build/temp.linux-x86_64-2.7/src/pyipopt.o
src/pyipopt.c: In function ‘set_intermediate_callback’:
src/pyipopt.c:452:15: warning: variable ‘myowndata’ set but not used [-Wunused-but-set-variable]
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relrobuild/temp.linux-x86_64-2.7/src/callback.o build/temp.linux-x86_64-2.7/src/pyipopt.o -L/home/mostafa/MyBuilds/CoinIpopt/build/lib/ -lipopt -lblas -lcoinhsl -lcoinmetis -llapack -ldl -lm -o build/lib.linux-x86_64-2.7/pyipopt.so -Wl,--rpath -Wl,/home/mostafa/MyBuilds/CoinIpopt/build/lib/
/usr/bin/ld: cannot find -lcoinhsl
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

4 个答案:

答案 0 :(得分:8)

  

<强> -Ldir
      将目录dir添加到要搜索的目录列表-l。

答案 1 :(得分:1)

您可以将coinhsl库安装在一个标准库目录中,然后在执行ppyipopt安装之前运行“ldconfig”

答案 2 :(得分:0)

我遇到了与另一个库类似的问题以及它没有找到它的原因是我没有为该库运行make install(在运行./configure和make之后)。 make install可能需要root权限(在这种情况下使用:sudo make install)。运行make install后,你应该将so文件放在正确的文件夹中,即/ usr / local / lib,而不是你提到的文件夹。

答案 3 :(得分:-4)

您可以将coinhsl lib的路径添加到LD_LIBRARY_PATH变量。可能会有所帮助。

export LD_LIBRARY_PATH=/xx/yy/zz:$LD_LIBRARY_PATH

其中/xx/yy/zz表示coinhsl lib。

的路径