18

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

/usr/bin/ld: 找不到 -lcoinhsl

即使我知道这个库已经安装并且 .so 和 .la 文件在/home/mostafa/MyBuilds/CoinIpopt/build/lib/

有人对此有解决方案吗?

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

root@ubuntu:~/MyBuilds/pyipopt# sudo python setup.py build
运行构建
运行 build_ext
构建“pyipopt”扩展
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:在函数“set_intermediate_callback”中:
src/pyipopt.c:452:15:警告:变量“myowndata”设置但未使用[-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: 找不到 -lcoinhsl
collect2: ld 返回 1 个退出状态
错误:命令“gcc”失败,退出状态为 1
4

4 回答 4

8

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

于 2013-01-02T01:31:26.750 回答
2

您可以在您的标准库目录之一中安装您的 coinhsl 库并在安装 ppyipopt 之前运行“ldconfig”

于 2012-08-24T12:34:03.103 回答
1

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

于 2017-01-31T13:41:52.767 回答
-4

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

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

其中/xx/yy/zz代表coinhsllib 的路径。

于 2012-08-24T14:05:20.917 回答