linux中使用boost的多线程库问题

canglanqu 2017-10-16 02:35:11
boost库是1.65.1版本,使用命令:
sudo ./bjam --layout=versioned --build-type=complete --toolset=gcc install 编译

编译&开发环境 ubuntu下codeblock
代码很简单
#include <boost/thread/thread.hpp>
#include <iostream>

void hello()
{
std::cout<<"Hello world, I'm a thread!"<<std::endl;
}

int main()
{
boost::thread thrd(&hello);
thrd.join();

system("pause");
return 0;
}
设置好了编译器include的路径和链接库路径
构建选项中添加了,-lboost_system和-lboost_thread

但是编译的时候报错,如下:
/home/linux/C++/BoostThreadDemo/../../boost_1_65_1/boost/thread/detail/thread.hpp|186|undefined reference to `boost::thread::start_thread_noexcept()'|
/home/linux/C++/BoostThreadDemo/../../boost_1_65_1/boost/thread/detail/thread.hpp|777|undefined reference to `boost::thread::join_noexcept()'|

网上找了一下基本上都是说没有设置链接库,但是已经添加了“-lboost_system和-lboost_thread”

请问还有什么地方可能出错?
...全文
300 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aaron_1203 2017-10-17
  • 打赏
  • 举报
回复
试了一下你的代码,CentOS+yum打包安装的boost,可以成功运行,codeblocks设置跟你一样 问题在哪就不清楚了,我在windows下试过全编译,也是链接不成功 猜测是不是链接库路径设置或者干脆就是库文件名的问题
sdghchj 2017-10-17
  • 打赏
  • 举报
回复
这样路径也是正确的,那就看看你编译boost的时候的问题了,比如32位跟64位互调的问题
canglanqu 2017-10-16
  • 打赏
  • 举报
回复
引用 5 楼 sdghchj 的回复:
[quote=引用 3 楼 canglanqu 的回复:]

左边显示的链接库,下面有添加按钮,跑右边去写的什么?
你自己那样写的,有指定链接库路径吗?明显没有[/quote]

层主,这个界面是codeblock的设置界面,你可能不了解上面的设置是啥意思,我把它贴出来是要说明我已经加上库了,这个ide用法先不讨论了。
下面是我用命令行直接编译的,如图所示:

boost的头文件放在“/home/linux/boost_1_65_1 ”
库文件放在“/home/linux/boost_1_65_1/lib”中

麻烦层主帮忙结合我上面的库文件列表,看看问题出在哪?
sdghchj 2017-10-16
  • 打赏
  • 举报
回复
引用 3 楼 canglanqu 的回复:
左边显示的链接库,下面有添加按钮,跑右边去写的什么? 你自己那样写的,有指定链接库路径吗?明显没有
canglanqu 2017-10-16
  • 打赏
  • 举报
回复
这是我编译后的boost库文件
canglanqu 2017-10-16
  • 打赏
  • 举报
回复
canglanqu 2017-10-16
  • 打赏
  • 举报
回复
不是用编译命令编译的,是使用codeblock编译的,这个在工程选项中有一项就是输入编译时使用的库。
比如我需要boost的多线程和系统库,就把“-lboost_system和-lboost_thread”填上,如图。
再比如说我如果需要linux系统的多线程库,就把“-lpthread”填上,如图
相当于编译的时候添加库文件
sdghchj 2017-10-16
  • 打赏
  • 举报
回复
把编译命令行贴出来啊 gcc -L指定lib库目录

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧