Wo ist meine BoostLib-Datei?

21

Ich benutze Boost. Ich habe es mit installiert sudo apt-get install. Jetzt kann ich meine BoostLib-Datei nicht in meinem Dateisystem finden.

Ich möchte den Pfad der Bibliothek in mein Qt-Projekt aufnehmen. Das Greifen dauert zu lange :( Ich habe die Includes in gefunden /usr/include/boost. Aber ich muss auch den Bibliothekspfad kennen.

Chani
quelle
1
sudo apt-get install ... was?
Eric Carvalho
1
@EricCarvalholibboost-dev
Chani

Antworten:

14

Ich bin nicht sicher, ob dies das ist, wonach Sie suchen, aber Sie möchten es wahrscheinlich installieren 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
Phipsalabim
quelle
34

Wenn Sie sich auf einem 64-Bit-Computer befinden, finden Sie die Dateien wahrscheinlich unter /usr/lib/x86_64-linux-gnu/

Siehe auch dies für eine Erklärung, wofür dieser Ordner ist.

kon psych
quelle
2

Für mich der Bibliothekspfad für boost in /usr/lib64, und das ist alles, was ich meinem Bibliothekspfad hinzufügen musste, damit der Code ordnungsgemäß erstellt wurde.

Es ist auch durchaus möglich, dass der Standort der Bibliothek eine willkürliche Entscheidung eines Entwicklers war, der meinen Computer gebaut hat. Beachten Sie auch, dass ich Ubuntu nicht benutze, aber Linux-Systeme sind ähnlich genug, dass es nicht viel ausmacht. Meine Lösung kann sehr gut niemandem helfen.

Wenn dies locateauf Ihrem System verfügbar ist, versuchen Sie Folgendes, um Folgendes zu finden boost:

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

libboost-dev hängt von libboost1.46-dev (Ubuntu 12.04) oder libboost1.49-dev (Ubuntu 12.10) ab. Beide Pakete installieren auch viele Dateien in /usr/share/boost-build/. Vielleicht ist es das, wonach Sie suchen.

Eric Carvalho
quelle
0

Verwenden Sie, um alle installierten Dateien für ein Paket und die Abhängigkeiten aufzulisten debfoster

sudo apt-get install debfoster

und ein Skript wie dieses. In diesem Beispiel habe ich das Paket verwendetlibboost-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)\
        }\
    }'

Nur die *.soDateien auflisten

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($|\.)\"")\
        }\
    }'
AB
quelle