我在ubuntu 12.04上安装pyipopt时遇到问题。在链接期间,我收到错误:
/usr/bin/ld: cannot find -lcoinhsl
即使我知道已安装此库并且/home/mostafa/MyBuilds/CoinIpopt/build/lib/
有没有人有解决方案?
下面是运行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
答案 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。