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 08/12/2012, à 10:22

Echyzen

Installation de la bibliothèque BOOST C++

Salut à tous,

Voilà, cela parait pourtant simple je cherche juste à installer la bibliothèque Boost notamment pour l'utilisation de la partie thread de la bibliothèque et la j'ai beau passer manuellement via le site de Boost ou via la logithèque d'Ubuntu ou même via Synaptic rien à faire les fichiers semble bien installer (je les trouve quand je fais un locate)... Mais dès la compilation via g++ avec :

g++ -Wall -o R.run PriseEnMainThreads.cxx -lboost_thread -L libboost_thread.so
ou en rajoutant :
-lboost_system

Rien a faire erreur de lien cannot find....

Je suis desespereais d'autant qu'avec le nombre de réinstallation pour bien faire il faudrait tout désinstaller et reprendre à zéro mais voilà je suis assez débutant sur Ubuntu et je me sent vraiment perdu là.

Si quelqu'un a eu le même problème surtout qu'il n'hésite pas à m'aider

Merci d'avance wink
Echyzen

Hors ligne

#2 Le 08/12/2012, à 16:30

louis94

Re : Installation de la bibliothèque BOOST C++

Bonjour,

Est-ce que tu es sûr que c'est -lboost_xxx pour Boost C++ ? Ça me semble plutôt être pour Boost C.

Louis

Hors ligne

#3 Le 08/12/2012, à 17:37

Echyzen

Re : Installation de la bibliothèque BOOST C++

Nn c'est bien çà et c'est ce que je recherche tkt wink

Hors ligne

#4 Le 09/12/2012, à 09:49

omc

Re : Installation de la bibliothèque BOOST C++

Bonjour,
Déjà, tu peux vérifier que les binaires (.so) sont bien installés.
Ils devraient être dans le dossier "/usr/lib/"
Si tout est en ordre une simple compilation avec :

g++ -Wall -o R.run PriseEnMainThreads.cxx -lboost_thread 

Devrait faire l'affaire.
Si ce n'est pas le cas c'est que le répertoire /usr/lib n'est pas reconnu comme répertoire par défaut par g++ et ce n'est pas normal.
Peux-tu faire la sortie complète de l'erreur de link ?
omc.

Hors ligne

#5 Le 09/12/2012, à 13:44

Echyzen

Re : Installation de la bibliothèque BOOST C++

Bon bah visiblement je ne possède pas le .so dans cette endroit de mon OS du coup je ne comprend encore moins car j'ai installer via toutes les méthodes quelqu'un pourrait me donner la marche a suivre pour bien l'installer car la sans le .so effectivement cela peu poser problème pour dire vrai même la bibliothèque se trouve dans usr/local/include ce qui me smeble pas normal...

Alors l'erreur c'est :
$> g++ -Wall -o P.run PriseEnMainThreads.cxx -lboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status

Merci omc pour ces précisions déjà big_smile

Edit :

Alors j'ai réinstaller maintenant je possède bien :
la version de Boost 1.40.0 je me retrouve bien avec libboost_thread.so.1.40.0 dans /usr/lib

Néanmoins, à la compilation c'est pas mieux j'ai ceci comme erreur :
$ > g++ -Wall -o P.run PriseEnMainThreads.cxx -lboost_thread
/tmp/cc3i4IPu.o: In function `__static_initialization_and_destruction_0(int, int)':
PriseEnMainThreads.cxx:(.text+0x23b): undefined reference to `boost::system::generic_category()'
PriseEnMainThreads.cxx:(.text+0x245): undefined reference to `boost::system::generic_category()'
PriseEnMainThreads.cxx:(.text+0x24f): undefined reference to `boost::system::system_category()'
/tmp/cc3i4IPu.o: In function `boost::thread_exception::thread_exception(int, char const*)':
PriseEnMainThreads.cxx:(.text._ZN5boost16thread_exceptionC2EiPKc[boost::thread_exception::thread_exception(int, char const*)]+0x7): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status

Dernière modification par Echyzen (Le 09/12/2012, à 13:53)

Hors ligne

#6 Le 10/12/2012, à 11:54

omc

Re : Installation de la bibliothèque BOOST C++

C'est mieux !!
Apparemment boost_thread utilise boost_system.
Donc, il faut que tu te link aussi à cette dernière bibliothèque.

 
g++ -Wall -o P.run PriseEnMainThreads.cxx -lboost_thread  -lboost_system

Ça devrait marcher !

Hors ligne

#7 Le 10/12/2012, à 11:57

omc

Re : Installation de la bibliothèque BOOST C++

Echyzen a écrit :

Bon bah visiblement je ne possède pas le .so dans cette endroit de mon OS du coup je ne comprend encore moins car j'ai installer via toutes les méthodes quelqu'un pourrait me donner la marche a suivre pour bien l'installer car la sans le .so effectivement cela peu poser problème pour dire vrai même la bibliothèque se trouve dans usr/local/include ce qui me smeble pas normal...

Pour installer boost, c'est plutôt simple :

sudo apt-get install libboost-all-dev

Et le gestionnaire de paquet fait le reste.
Mais, si tu as déjà du boost installé sur ta machine c'est que tu as fais une install "à la main" et cela risque de créer des collision avec le boost des paquets.

Hors ligne

#8 Le 10/12/2012, à 13:53

Echyzen

Re : Installation de la bibliothèque BOOST C++

Salut omc,
Alors maintenant il ne me trouve pas -lboost_system me semble t'il j'ai ceci comme erreur :

g++ -Wall -o P.run PriseEnMainThreads.cxx -lboost_thread  -lboost_system
/usr/bin/ld: cannot find -lboost_system
collect2: ld returned 1 exit status

C'est idem avec -lsystem...

Hors ligne

#9 Le 10/12/2012, à 14:25

omc

Re : Installation de la bibliothèque BOOST C++

Ton installation de la librairie boost me semble bizarre.
Refais une install standard avec la commande :

sudo apt-get install libboost-all-dev

Normalement tu devrais trouver les fichiers suivants dans le dossier /usr/lib

omc@jack:~$ ls /usr/lib/libboost_*.so
/usr/lib/libboost_date_time-mt.so       /usr/lib/libboost_math_c99l.so            /usr/lib/libboost_program_options-mt.so  /usr/lib/libboost_system-mt.so
/usr/lib/libboost_date_time.so          /usr/lib/libboost_math_c99-mt.so          /usr/lib/libboost_program_options.so     /usr/lib/libboost_system.so
/usr/lib/libboost_filesystem-mt.so      /usr/lib/libboost_math_c99.so             /usr/lib/libboost_python-mt-py27.so      /usr/lib/libboost_thread-mt.so
/usr/lib/libboost_filesystem.so         /usr/lib/libboost_math_tr1f-mt.so         /usr/lib/libboost_python-mt-py32.so      /usr/lib/libboost_thread.so
/usr/lib/libboost_graph-mt.so           /usr/lib/libboost_math_tr1f.so            /usr/lib/libboost_python-py27.so         /usr/lib/libboost_unit_test_framework-mt.so
/usr/lib/libboost_graph_parallel-mt.so  /usr/lib/libboost_math_tr1l-mt.so         /usr/lib/libboost_python-py32.so         /usr/lib/libboost_unit_test_framework.so
/usr/lib/libboost_graph_parallel.so     /usr/lib/libboost_math_tr1l.so            /usr/lib/libboost_python.so              /usr/lib/libboost_wave-mt.so
/usr/lib/libboost_graph.so              /usr/lib/libboost_math_tr1-mt.so          /usr/lib/libboost_regex-mt.so            /usr/lib/libboost_wave.so
/usr/lib/libboost_iostreams-mt.so       /usr/lib/libboost_math_tr1.so             /usr/lib/libboost_regex.so               /usr/lib/libboost_wserialization-mt.so
/usr/lib/libboost_iostreams.so          /usr/lib/libboost_mpi-mt.so               /usr/lib/libboost_serialization-mt.so    /usr/lib/libboost_wserialization.so
/usr/lib/libboost_math_c99f-mt.so       /usr/lib/libboost_mpi.so                  /usr/lib/libboost_serialization.so
/usr/lib/libboost_math_c99f.so          /usr/lib/libboost_prg_exec_monitor-mt.so  /usr/lib/libboost_signals-mt.so
/usr/lib/libboost_math_c99l-mt.so       /usr/lib/libboost_prg_exec_monitor.so     /usr/lib/libboost_signals.so

Tu vois que le fichier "libboost_system.so" existe

Dernière modification par omc (Le 10/12/2012, à 14:26)

Hors ligne

#10 Le 10/12/2012, à 21:18

Echyzen

Re : Installation de la bibliothèque BOOST C++

Vraiment désolé de t'embêter mais bon j'ai donc fait le apt-get install... J'ai vérifié j'ai bien les fichiers :

ls /usr/lib/libboost_*.so
/usr/lib/libboost_date_time-mt.so
/usr/lib/libboost_date_time.so
/usr/lib/libboost_filesystem-mt.so
/usr/lib/libboost_filesystem.so
/usr/lib/libboost_graph-mt.so
/usr/lib/libboost_graph.so
/usr/lib/libboost_iostreams-mt.so
/usr/lib/libboost_iostreams.so
/usr/lib/libboost_math_c99f-mt.so
/usr/lib/libboost_math_c99f.so
/usr/lib/libboost_math_c99l-mt.so
/usr/lib/libboost_math_c99l.so
/usr/lib/libboost_math_c99-mt.so
/usr/lib/libboost_math_c99.so
/usr/lib/libboost_math_tr1f-mt.so
/usr/lib/libboost_math_tr1f.so
/usr/lib/libboost_math_tr1l-mt.so
/usr/lib/libboost_math_tr1l.so
/usr/lib/libboost_math_tr1-mt.so
/usr/lib/libboost_math_tr1.so
/usr/lib/libboost_prg_exec_monitor-mt.so
/usr/lib/libboost_prg_exec_monitor.so
/usr/lib/libboost_program_options-mt.so
/usr/lib/libboost_program_options.so
/usr/lib/libboost_python-mt-py26.so
/usr/lib/libboost_python-py26.so
/usr/lib/libboost_python.so
/usr/lib/libboost_regex-mt.so
/usr/lib/libboost_regex.so
/usr/lib/libboost_serialization-mt.so
/usr/lib/libboost_serialization.so
/usr/lib/libboost_signals-mt.so
/usr/lib/libboost_signals.so
/usr/lib/libboost_system-mt.so
/usr/lib/libboost_system.so
/usr/lib/libboost_thread-mt.so
/usr/lib/libboost_thread.so
/usr/lib/libboost_unit_test_framework-mt.so
/usr/lib/libboost_unit_test_framework.so
/usr/lib/libboost_wave-mt.so
/usr/lib/libboost_wave.so
/usr/lib/libboost_wserialization-mt.so
/usr/lib/libboost_wserialization.s


Mais j'ai toujours des erreurs au moment de la compilation :s

g++ -Wall -o R.run PriseEnMainThreads.cxx -lboost_thread -lboost_system

/tmp/ccgd2Nqc.o: In function `__static_initialization_and_destruction_0(int, int)':
PriseEnMainThreads.cxx:(.text+0x23b): undefined reference to `boost::system::generic_category()'
PriseEnMainThreads.cxx:(.text+0x245): undefined reference to `boost::system::generic_category()'
PriseEnMainThreads.cxx:(.text+0x24f): undefined reference to `boost::system::system_category()'
/tmp/ccgd2Nqc.o: In function `boost::thread_exception::thread_exception(int, char const*)':
PriseEnMainThreads.cxx:(.text._ZN5boost16thread_exceptionC2EiPKc[boost::thread_exception::thread_exception(int, char const*)]+0x7): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status

Je vais chercher de mon côter mais c'est vraiment bizzare que j'ai autant de difficulté...
Merci déjà pour cette avancé omc j'approche doucement mais surement grâce à toi wink

Hors ligne