Ⅰ 如何在linux上使用boost:thread-C/C++
首先需要安装boost,步骤如下:
下载到boost_1_49_0.tar.bz2 (当然,其他压缩格式也可以)后,可以把它放在用户目录下,即:~/
解压缩:tar -jxvf boost_1_49_0.tar.bz2
这样,出现文件夹:~/boost_1_49_0
然后进入:$ cd boost_1_49_0
你会发现有一个sh命令:bootstrap.sh
运行它:$ ./bootstrap.sh (boost自己的get start文档中说设置参数 --prefix=dir 其中dir为你想指定的安装文件夹,我建议就不用加这个参数,它会默认安装到/usr/local)
结束后出现一个可执行文件: ~/boost_1_49_0/b2
运行这个文件: $ sudo ./b2 install (Ubuntu用户千万别忘了加sudo,不然安装后将无法完全使用)
编译安装时间比较长,根据不同机器的情况20~40分钟。结束后即安装完毕。
boost::thread的使用
#include<boost/thread.hpp>
#include<iostream>
voidtask1(){
//dostuff
std::cout<<"Thisistask1!"<<std::endl;
}
voidtask2(){
//dostuff
std::cout<<"Thisistask2!"<<std::endl;
}
intmain(intargc,char**argv){
usingnamespaceboost;
threadthread_1=thread(task1);
threadthread_2=thread(task2);
//dootherstuff
thread_2.join();
thread_1.join();
return0;
}
编译时的命令为:
$ g++ -I./inlcude -L./lib example.cpp -lboost_thread -o example
编译之后会出现一个 example 的可执行文件,可以运行:./example , 结果显示:
This is task2!
This is task1!
可能你在运行时会出现这样的错误:error while loading shared libraries: libboost_thread.so.1.49.0: cannot open shared object file: No such file or directory
这是因为要用到的库不在默认的环境变量里,可以使用下面的命令添加:
$ sudo ldconfig /usr/local/lib
添加后,再执行./example,这样你就完成了你的第一个boost::thread程序。
直接重新下载安装即可
1.下载 boost
2. 将文件解压在/usr/local/目录下
3. 进入版/usr/local/boost/ 目录, 在terminal中输入
./bootstrap.sh
4.进入/usr/local/boost/ 目录,在terminal中输入
sudo ./bjam --layout=versioned --build-type=complete --toolset=gcc install
5.添加环境变量权(刚改完要重启或者注销一下来更新刚修改过的环境变量)
两种方法:
(1)修改/etc/profie文件 末尾添加
export BOOST_INCLUDE=/usr/local/include/boost
export BOOST_LIB=/usr/local/lib
(2)在/etc/profile.d/ 中新建一个shell文件boost.sh
#!/bin/sh
export BOOST_INCLUDE=/usr/local/include/boost
export BOOST_LIB=/usr/local/lib
Ⅲ linux下安装boost库时,boost版本跟gcc版本有关系吗
这个当然是和 GCC 版本有关啦
考虑一些新特性的支持,选较新版本的 GCC
Ⅳ Linux下使用CMake进行编译的时候寻找Boost库
通过调用 find_package 可以找到头文件和所需要的库文件或者是一个CMake打包配置文件,
运行完后可以得到很多变量,下塌启坦面列了一些主要的
可以在搜索package之前,通过设置一些变量来帮助boost库的查找
假如目标程序foo需要链接团桐旁友Boost库regex和system,编写如下的CMakeLists文件,
FindBoost