Ответ 1
-Ldir
Добавить каталог каталога в список каталогов для поиска -l.
У меня возникли проблемы с установкой pyipopt на ubuntu 12.04. При связывании я получаю сообщение об ошибке:
/usr/bin/ld: cannot find -lcoinhsl
Хотя я знаю, что эта библиотека установлена, а файлы .so и .la доступны в /home/mostafa/MyBuilds/CoinIpopt/build/lib/
У кого-нибудь есть решение для этого?
ниже приведен полный возврат запуска setup.py build:
[email protected]:~/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
-Ldir
Добавить каталог каталога в список каталогов для поиска -l.
Вы можете установить свою библиотеку coinhsl в один из ваших стандартных библиотек библиотек и запустить 'ldconfig`, прежде чем выполнять установку ppyipopopt
У меня была аналогичная проблема с другой библиотекой, и причина, по которой она ее не обнаружила, заключалась в том, что я не запускал make install (после запуска. /configure и make) для этой библиотеки. Для установки make могут потребоваться права root (в этом случае используйте: sudo make install). После запуска make install у вас должны быть такие файлы в правильной папке, то есть здесь /usr/local/lib, а не в указанной вами папке.
вы можете добавить Path to coinhsl lib в переменную LD_LIBRARY_PATH
. Может быть, это поможет.
export LD_LIBRARY_PATH=/xx/yy/zz:$LD_LIBRARY_PATH
где /xx/yy/zz
представляет путь к coinhsl
lib.