Gdzie jest mój plik lib boost?

21

Używam doładowania. Zainstalowałem to za pomocą sudo apt-get install. Teraz nie mogę znaleźć mojego pliku lib boost w moim systemie plików.

Chcę zawrzeć ścieżkę lib w moim projekcie Qt. grepping trwa zbyt długo :( Znalazłem dołączenia w /usr/include/boost. Ale muszę też znać ścieżkę biblioteki.

Chani
źródło
1
sudo apt-get install ... co?
Eric Carvalho
1
@EricCarvalholibboost-dev
Chani

Odpowiedzi:

14

Nie jestem pewien, czy tego właśnie szukasz, ale prawdopodobnie chcesz zainstalować 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
fipsalabim
źródło
34

Jeśli korzystasz z komputera 64-bitowego, prawdopodobnie znajdziesz tam pliki /usr/lib/x86_64-linux-gnu/

Zobacz także to, aby wyjaśnić, do czego służy ten folder.

kon psych
źródło
2

Dla mnie ścieżka biblioteki boostbyła już dostępna /usr/lib64i to wszystko, co musiałem dodać do ścieżki biblioteki, aby kod mógł się poprawnie zbudować.

Jest również całkiem możliwe, że lokalizacja biblioteki była arbitralną decyzją dewelopera budującego mój komputer. Zauważ też, że nie używam Ubuntu, ale systemy Linux są na tyle podobne, że nie ma to większego znaczenia. Moje rozwiązanie może nikomu nie pomóc.

Jeśli locatejest dostępny w twoim systemie, wypróbuj te w celu zlokalizowania 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
źródło
1

libboost-dev zależy od libboost1.46-dev (Ubuntu 12.04) lub libboost1.49-dev (Ubuntu 12.10). Oba pakiety instalują również wiele plików /usr/share/boost-build/. Może to jest to, czego szukasz.

Eric Carvalho
źródło
0

Aby wyświetlić listę wszystkich zainstalowanych plików dla pakietu i zależności, użyj debfoster

sudo apt-get install debfoster

i taki skrypt. W tym przykładzie użyłem pakietulibboost-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)\
        }\
    }'

Aby wyświetlić tylko *.sopliki

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
źródło