首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我安装了libboost,但无法链接到它

我安装了libboost,但无法链接到它
EN

Stack Overflow用户
提问于 2012-06-21 19:43:23
回答 3查看 13.6K关注 0票数 7

我已经通过apt-get安装了libboost-dev,并将其放在/usr/lib中。

代码语言:javascript
复制
/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的源代码时,我仍然得到了一个错误。

代码语言:javascript
复制
$ 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的正确方式是什么

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-21 20:07:40

我注意到的一件事是你没有libboost_thread.so。您拥有版本化为1.46.1的文件,但通常库将创建一个指向具有未修饰名称的版本化副本的符号链接。可能不是这样,但这是我注意到的一件事。(这通常由安装程序完成。)- Omaha

我想这就是重点。这意味着我以错误的方式安装了libboost。实际上,我只安装了libboost-dev

代码语言:javascript
复制
sudo apt-get install libboost-dev 

但我应该做的是:

代码语言:javascript
复制
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

代码语言:javascript
复制
/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 ...
票数 11
EN

Stack Overflow用户

发布于 2017-05-19 02:02:42

在Ubuntu 16.04中,这个包被命名为: libboost-all-dev (而不是libboost-dev-all)

票数 2
EN

Stack Overflow用户

发布于 2015-02-13 01:40:14

评论框把这个建议的引用搞砸了,所以我把它作为一个答案发布,以获得正确的引用。

过去,Ubuntu有一个元软件包libboost-dev-all来安装所有这些。然而,我现在似乎找不到它了。这里有一个命令行可能会有帮助:

代码语言:javascript
复制
sudo apt-get install `apt-cache search libboost | \
    grep -- -dev | \
    grep -v '[12]\.[0-9]' | \
    awk '{ print $1; }'`

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11137398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档