# 首先删除本地原有的 boost 库
rm -f /usr/lib/libboost*
rm -fr 'find / -name libboost*'
# 移除boost头文件
mv /usr/include/boost /usr/include/boost-bak
# 下载 wget
apt-get install wget
# 下载Boost库
wget https://dl.bintray.com/boostorg/release/1.57.0/source/boost_1_57_0.tar.gz
tar -zxvf boost_1_57_0.tar.gz
cd boost_1_57_0
# 安装必要的库
sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev
# 构建符合环境的脚本
./bootstrap.sh
# 编译一下
./b2
# 最终安装
sudo ./b2 install
如果编译好程序后,在运行时提示无法加载某个库文件,则把/usr/local/lib下的所有boost的库文件mv到/usr/lib目录下就可以了。
默认安装头文件在目录/usr/local/include,而库文件在目录/usr/local/lib。卸载也很简单,直接将以上两个目录中有关boost的内容删除就可以了。
注:
如果安装在自定义目录需要在配置的时候添加相关库的路径
./bootstrap.sh --prefix=/home/lib/prefix
这样boost的include和lib就被安装在自定义的路径/home/lib/prefix下。
使用时:
export LD_LIBRARY_PATH=/path/to/installation/prefix/lib
在同一terminal下运行依赖该boost库的程序即可。
注意:终端添加的环境变量是临时的,开启新的terminal需要在新的terminal下再次export。
查看LD_LIBRARY_PATH的方法:
echo $LD_LIBRARY_PATH
可以看到,在该终端中,系统的LD_LIBRARY_PATH已经被刚刚定义的临时LD_LIBRARY_PATH覆盖了。
一键安装
指令: apt-get install libboost-all-dev
查找Boost
sudo apt-get install aptitude
aptitude search boost
应该能得到类似的结果:
p libboost1.55-tools-dev - Boost C++ Libraries development tools
p libboost1.55-tools-dev:i386 - Boost C++ Libraries development tools
检查并测试一下
Then paste this into a C++ file called main.cpp:
#include <iostream>
#include <boost/array.hpp>
using namespace std;
int main(){
boost::array<int, 4> arr = {{1,2,3,4}};
cout << "hi" << arr[0]<<endl;
return 0;
}
Compile like this:
g++ -o s main.cpp
Run it like this:
./s
应该能得到输出:
hi1
参考文献:
https://www.cnblogs.com/taolusi/p/9244554.html
网友评论