Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. smile
J'aurais dû trouver tout seul, en tout cas, merci encore et désolé pour le dérangement.