web-dev-qa-db-fra.com

Où est mon fichier boost lib?

J'utilise boost. Je l'ai installé en utilisant Sudo apt-get install. Maintenant, je suis incapable de trouver mon fichier boost lib sur mon système de fichiers.

Je veux inclure le chemin de la bibliothèque dans mon projet Qt. grepping prend trop de temps :( J'ai trouvé l'inclus dans /usr/include/boost. Mais j'ai aussi besoin de connaître le chemin de la bibliothèque.

21
Chani

Je ne sais pas si c'est ce que vous cherchez, mais vous voudrez probablement installer libboost-all-dev.

$ 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_parallel-mt.so
/usr/lib/libboost_graph_parallel.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_mpi-mt.so
/usr/lib/libboost_mpi.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-py27.so
/usr/lib/libboost_python-mt-py32.so
/usr/lib/libboost_python-py27.so
/usr/lib/libboost_python-py32.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.so
14
phipsalabim

Si vous êtes sur un ordinateur 64 bits, vous trouverez probablement les fichiers sous /usr/lib/x86_64-linux-gnu/

Voir aussi this pour une explication sur l’utilisation de ce dossier.

34
kon psych

Pour moi, le chemin d'accès à la bibliothèque pour boost se trouvait dans /usr/lib64 et c'est tout ce que j'avais à ajouter à mon chemin d'accès à la bibliothèque pour que le code soit construit correctement.

Il est également tout à fait possible que l'emplacement de la bibliothèque soit une décision arbitraire d'un développeur construisant mon ordinateur. Notez également que je n'utilise pas Ubuntu, mais les systèmes Linux sont suffisamment similaires pour que cela importe peu. Ma solution peut très bien ne pas aider personne du tout.

Si locate est disponible sur votre système, essayez-les pour localiser boost:

locate boost | fgrep .so   #find lib files      (/usr/lib64 for me)
locate boost | fgrep .hpp  #find include files  (/usr/include for me)
2
Joshua Detwiler

libboost-dev dépend de libboost1.46-dev (Ubuntu 12.04) ou de libboost1.49-dev (Ubuntu 12.10). Les deux packages installent également beaucoup de fichiers dans /usr/share/boost-build/. Peut-être que c'est ce que vous recherchez.

1
Eric Carvalho

Pour répertorier tous les fichiers installés pour un package et ses dépendances, utilisez debfoster

Sudo apt-get install debfoster

et un script comme celui-ci. Dans cet exemple, j'ai utilisé le paquetage libboost-all-dev

debfoster -d libboost-all-dev |\
    awk '! /depends on/ {\
        for(i=1;i<=NF;i++) {\
            printf "\n>>> %s \n",$i; system("dpkg -L "$i)\
        }\
    }'

Pour répertorier uniquement les fichiers *.so

debfoster -d  libboost-all-dev |\
    awk '! /depends on/ {\
        for(i=1;i<=NF;i++) {\
            printf "\n>>> %s \n",$i; system("dpkg -L "$i" | grep -P \".so($|\.)\"")\
        }\
    }'
0
A.B.