在RedHat 7.2中安装boost库
环境,其它版本类似
- Redhat7.2 64bit
- boost 1.64.0
步骤
- 去 boost官网 下载想要版本的.tar.gz,如下图
![](https://i.imgur.com/SdsVGnd.png)
- 解压tar -vzxf ****.tar.gz,进入解压后的目录,运行./booststrap.sh,会生成一个bjam的可执行程序。
- 运行./bjam 进行编译,一个过程有点漫长......
- 编译成功后在文件夹下,会有stage、bin.v2两个目录。bin.v2中存的是编译时生成的目标文件,可以删除节省空间。stage中是boost的库文件,我们想要的。
![](https://i.imgur.com/UL9Afoe.png)
- 新建目录 /usr/share/boost_1_64_0/ 。把stage、boost两个目录拷贝至/usr/share/boost_1_64_0/ 下。stage中为 boost 库文件,boost中为 boost 头文件。
- 修改 /etc/profile 文件,在后面添加三个环境变量:
export BOOST_ROOT=/usr/share/boost_1_64_0/
export BOOST_INCLUDE=/usr/share/boost_1_64_0/
export BOOST_LIB=/usr/share/boost_1_64_0/stage/libs
保存退出,运行source /etc/profile 使之生效
- 新建一个到头文件目录的链接
ln -s /usr/share/boost_1_64_0/boost/ /usr/include/boost
此刻boost已经安装完成
可以下面的代码进行测试
// boost库中noncopyable使用
#include <boost/utility.hpp>
#include <iostream>
using namespace std;
class myclass : public boost::noncopyable
{
public:
myclass() {}
myclass(int i) {}
};
int main()
{
myclass c1();
myclass c2(1);
/*这里会报错,赋值运算符和拷贝构造都已成为私有*/
myclass c3(c1);
myclass c3 = c1;
return 0;
}