#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
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
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à
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++
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
Hors ligne