web-dev-qa-db-fra.com

ld ne trouve pas -l <bibliothèque>

Je n'arrive pas à installer pyipopt sur Ubuntu 12.04. Pendant la liaison, je reçois le message d'erreur:

/usr/bin/ld: impossible de trouver -lcoinhsl 

Même si je sais que cette bibliothèque est installée et que les fichiers .so et .la sont disponibles au format /home/mostafa/MyBuilds/CoinIpopt/build/lib/

quelqu'un at-il une solution pour cela?

vous trouverez ci-dessous le retour complet de l'exécution de setup.py build:

 root @ ubuntu: ~/MyBuilds/pyipopt # Sudo python setup.py build 
 en cours d'exécution 
 en cours d'exécution_ext 
 en cours de construction '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/MonBuilds/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: dans la fonction 'set_intermediate_callback': 
 src/pyipopt.c: 452: 15: avertissement: variable 'myowndata' définie mais non utilisée [-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 -lcoinmet -lcoinmet -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: impossible de trouver -lcoinhsl 
 collect2: ld a renvoyé 1 état de sortie 
 error: la commande 'gcc' a échoué avec le statut de sortie 1 
16
mo ba

-Ldir
Ajoutez le répertoire dir à la liste des répertoires à rechercher -l.

9
Trevor Hickey

Vous pouvez installer votre bibliothèque coinhsl dans l’un de vos répertoires de bibliothèques standard et exécuter 'ldconfig` avant de procéder à l’installation de ppyipopt.

1
Stephane Rouberol

J'ai eu un problème similaire avec une autre bibliothèque et la raison pour laquelle elle ne l'a pas trouvée, c'est que je n'ai pas exécuté make install (après avoir exécuté ./configure et make) pour cette bibliothèque. Make install peut nécessiter des privilèges root (dans ce cas, utilisez: Sudo make install). Après avoir exécuté make install, vous devez placer les fichiers so dans le bon dossier, c’est-à-dire ici/usr/local/lib et non dans le dossier que vous avez mentionné.

0
user698116