簡體   English   中英

我安裝了libboost但無法鏈接到它

[英]I installed libboost but can't link to it

我已經通過apt-get安裝了libboost-dev ,它放在/usr/lib

/usr/lib$ ls | grep boost
libboost_filesystem.so.1.46.1
libboost_iostreams.so.1.46.1
libboost_serialization.so.1.46.1
libboost_system.so.1.46.1
libboost_thread.so.1.46.1
libboost_wserialization.so.1.46.1

但是當我嘗試編譯使用boost_thread的源時,我仍然遇到錯誤。

$ g++ tcp_echo.cpp -o tcp_echo -L/usr/lib -llibboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status
$ g++ tcp_echo.cpp -o tcp_echo -L/usr/lib -lboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status

安裝和鏈接到libboost的正確方法是什么?

我注意到的一件事是你沒有libboost_thread.so。 您具有版本化的1.46.1文件,但通常庫將創建帶有未修飾名稱的版本化副本的符號鏈接。 那可能不是它,但這是我注意到的一件事。 (這通常由安裝人員完成。) - 奧馬哈

我認為這是重點。 這意味着我以錯誤的方式安裝了libboost 實際上,我只安裝了libboost-dev

sudo apt-get install libboost-dev 

但我該怎么做:

sudo apt-get install libboost-dev libboost1.46-doc libboost-date-time1.46-dev ibboost-filesystem1.46-dev libboost-graph1.46-dev libboost-iostreams1.46-dev libboost-math1.46-dev libboost-program-options1.46-dev libboost-python1.46-dev libboost-random1.46-dev libboost-regex1.46-dev libboost-serialization1.46-dev libboost-signals1.46-dev libboost-system1.46-dev libboost-test1.46-dev libboost-thread1.46-dev libboost-wave1.46-dev

(或者,在我的特定情況下,至少安裝libboost-system1.46-dev libboost-thread1.46-dev

一旦你正確安裝它們, /usr/lib應該有.a.so

/usr/lib$ ls | grep boost
libboost_date_time.a
libboost_date_time-mt.a
libboost_date_time-mt.so
libboost_date_time.so
libboost_date_time.so.1.46.1
libboost_filesystem.a
libboost_filesystem-mt.a
... and so on ...

在Ubuntu 16.04中,該軟件包的名稱為:libboost-all-dev(不是libboost-dev-all)

評論框搞砸了這個建議的引用,所以我發布它作為得到正確引用的答案。

過去,Ubuntu有安裝所有這些的元包libboost-dev-all。 但是,我現在似乎無法找到它。 這是一個可能有用的命令行:

sudo apt-get install `apt-cache search libboost | \
    grep -- -dev | \
    grep -v '[12]\.[0-9]' | \
    awk '{ print $1; }'`

(摘自https://github.com/imvu-open/istatd/ file install-boost-dev.sh)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM