Tập tin lib của tôi ở đâu?


21

Tôi đang sử dụng boost. Tôi đã cài đặt nó bằng cách sử dụng sudo apt-get install. Bây giờ tôi không thể tìm thấy tập tin lib lib trên hệ thống tập tin của mình.

Tôi muốn bao gồm đường dẫn của lib trong dự án Qt của tôi. grepping mất quá nhiều thời gian :( Tôi tìm thấy bao gồm trong /usr/include/boost. Nhưng tôi cũng cần biết đường dẫn thư viện.


1
sudo apt-get install ... gì?
Eric Carvalho

1
@EricCarvalholibboost-dev
Chani

Câu trả lời:


14

Tôi không chắc đây có phải là thứ bạn đang tìm kiếm không, nhưng có lẽ bạn muốn cài đặt 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

34

Nếu bạn đang sử dụng máy 64 bit thì có thể bạn sẽ tìm thấy các tệp trong /usr/lib/x86_64-linux-gnu/

Xem thêm này cho một lời giải thích về những gì thư mục này là dành cho.


2

Đối với tôi, đường dẫn thư viện boostđã vào /usr/lib64và đó là tất cả những gì tôi phải thêm vào đường dẫn thư viện để mã được xây dựng chính xác.

Cũng hoàn toàn có khả năng vị trí của thư viện là một quyết định tùy tiện của một nhà phát triển xây dựng máy tính của tôi. Cũng lưu ý rằng tôi không sử dụng Ubuntu, nhưng các hệ thống Linux tương tự nhau đến mức nó không quan trọng lắm. Giải pháp của tôi rất có thể không giúp được ai cả.

Nếu locatecó sẵn cho bạn trên hệ thống của bạn, thì hãy thử những cách này để định vị boost:

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

1

libboost-dev phụ thuộc vào libboost1.46-dev (Ubuntu 12.04) hoặc libboost1.49-dev (Ubuntu 12.10). Cả hai gói cũng cài đặt rất nhiều tập tin trong /usr/share/boost-build/. Có lẽ đó là những gì bạn đang tìm kiếm.


0

Để liệt kê tất cả các tệp được cài đặt cho một gói và các phụ thuộc, sử dụng debfoster

sudo apt-get install debfoster

và một kịch bản như thế này. Trong ví dụ này tôi đã sử dụng góilibboost-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)\
        }\
    }'

Chỉ liệt kê các *.sotập tin

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($|\.)\"")\
        }\
    }'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.