Pages : 1
#1 Le 26/05/2007, à 11:29
- LorDjidane
Problème avec BuDDy
Bonjour à tous
Je suis face à un problème pour lequel je n'ai aucune solution. Pour commencer, je suis en 7.04, qui tourne depuis XP via VirtualBox.
Je dois utiliser la bibliothèque BuDDy (bibliothèque de gestion de BDD (Binary Decision Diagrams)) pour un projet scolaire.
http://sourceforge.net/projects/buddy
Je regarde le README, ça me dit :
./configure
make
make install
Je fais ça (en sudo), bon tout va bien, rien de spécial à déplorer.
A la fin, je fais un ldconfig pour linker dynamiquement les librairies ajoutées. Je l'ai mis en verbose, et voilà ce qu'il me sort :
lordji@laptop:~/Desktop/buddy-2.4$ sudo ldconfig -v
ldconfig: Can't stat /lib64: No such file or directory
ldconfig: Can't stat /usr/lib64: No such file or directory
... //listing de toutes les librairies apparemment
J'indique ceci puisqu'apparemment le problème viendrait de là.
Je fais ensuite un programme bidon (du printf, j'inclus bdd.h pour le test), et je compile comme suit (en verbose des fois que ça puisse aider) :
lordji@laptop:~/Desktop/test$ gcc a.c -o a -lbdd -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
/usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 -quiet -v a.c -quiet -dumpbase a.c -mtune=generic -auxbase a -version -fstack-protector -fstack-protector -o /tmp/ccMzWqlO.s
ignoring nonexistent directory "/usr/local/include/i486-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../i486-linux-gnu/include"
ignoring nonexistent directory "/usr/include/i486-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.1.2/include
/usr/include
End of search list.
GNU C version 4.1.2 (Ubuntu 4.1.2-0ubuntu4) (i486-linux-gnu)
compiled by GNU C version 4.1.2 (Ubuntu 4.1.2-0ubuntu4).
GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=32011
Compiler executable checksum: c0d954aeefbb96d795ff3f6b3b72ef51
as -V -Qy -o /tmp/ccyumh2Q.o /tmp/ccMzWqlO.s
GNU assembler version 2.17.50 (i486-linux-gnu) using BFD version 2.17.50 20070103 Ubuntu
/usr/lib/gcc/i486-linux-gnu/4.1.2/collect2 --eh-frame-hdr -m elf_i386 --hash-style=both -dynamic-linker /lib/ld-linux.so.2 -o a /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.1.2/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.1.2 -L/usr/lib/gcc/i486-linux-gnu/4.1.2 -L/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib /tmp/ccyumh2Q.o -lbdd -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-linux-gnu/4.1.2/crtend.o /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crtn.o
Et quand j'exécute mon programme a finalement, j'ai ceci :
lordji@laptop:~/Desktop/test$ ./a
./a: error while loading shared libraries: libbdd.so.0: cannot open shared object file: No such file or directory
J'ai cherché libbdd.so.0, je l'ai trouvé dans /usr/local/lib/ :
lordji@laptop:~/Desktop/test$ ls /usr/local/lib/
libbdd.a libbdd.la libbdd.so libbdd.so.0 libbdd.so.0.0.0 python2.5
Apparemment il faudrait que ce soit en /usr/lib/ ?
Si j'ai bien compris les messages d'erreur, il suffirait que je dise à gcc de linker à partir de /usr/local/lib en plus de /usr/lib/ ?
Sinon, c'est quoi cette histoire de /lib64/ et /usr/lib64/ ?
Et enfin, si quelqu'un pouvait à installer le package chez lui pour voir s'il a la même erreur, ce serait sympa (au pire, un make distclean pour finir et voilà).
J'avoue qu'après la soirée d'hier perdue à essayer de régler ce problème, je suis un peu désespéré.
Voilà voilà, merci d'avance (et désolé pour le pavé, j'ai essayé d'être clair au possible).
#2 Le 26/05/2007, à 14:25
- milambert
Re : Problème avec BuDDy
tu a deux solution (je pense):
soit déclarer une variable d'environement:
export LD_LIBRARY_PATH=/usr/local/lib
soit le spécifier le path vers ta librairie dans le fichier:
/etc/ld.so.conf
au pire, tu peux linker tes librairie (pas propore) ou indiqiuer ou elles se trouvent dans l'argument du compilateur (-I ... quelque chose).
mouarf, ...
Hors ligne
#3 Le 26/05/2007, à 15:00
- LorDjidane
Re : Problème avec BuDDy
Merci pour la réponse.
J'ai pas trop sais la première solution donc j'ai fait la deuxième, j'ai édité
/etc/ld.so.conf
il contenait
/usr/i486-linux-gnu
/usr/lib/i486-linux-gnu
Mais rien n'y fit. (d'ailleurs j'aimerais bien comprendre ce que c'est que ce i486-linux-gnu, pourquoi mon gcc le choisit en target etc. Je pensais etre en i386 ?)
Ce que je ne m'explique pas, surtout, c'est que deux amis, un sous freeBSD, l'autre sous Zenwalk, n'ont eu aucun souci pour l'installation. Est-ce dû à la machine virtuelle ? J'en doute infiniment vu le principe d'une vm, mais bon.
#4 Le 26/05/2007, à 17:44
- milambert
Re : Problème avec BuDDy
sinon, pour mettre des librairie dans /usr/lib:
lors de la compliation:
./configure --prefix=/usr
make
make install
Dernière modification par milambert (Le 26/05/2007, à 17:44)
mouarf, ...
Hors ligne
#5 Le 27/05/2007, à 10:27
- LorDjidane
Re : Problème avec BuDDy
Salut
Merci beaucoup pour ton aide, ça a l'air de fonctionner.
J'aurais dû trouver tout seul, en tout cas, merci encore et désolé pour le dérangement.
Pages : 1