ubuntu 16.04 下更换boost版本
如果是新机器,没装过boost,那么直接一条命令
sudo apt-get install libboost-all-dev
头文件一般安装在
/usr/include
下面有一个目录boost,里面是头文件。而库文件一般都放在
/usr/lib/x86_64-linux-gnu
目录下。比如libboost_system.a文件。
一 如何查看当前安装的boost版本
dpkg -S /usr/include/boost/version.hpp
通过上面的命令,你就可以发现boost的版本了,查看结果可能如下:
libboost1.54-dev: /usr/include/boost/version.hpp
二 如何删除当前安装的boost
sudo apt-get autoremove libboost1.54-dev
那么就可以删除boost了。上面的libboost1.54-dev是在第一步中看到的版本。
注意的是,如果你使用的是以下命令安装的boost
sudo apt-get install libboost-dev
那么很有可能,在目录/usr/lib/x86_64-linux-gnu下并没有libboost_system.a等文件,这个是要注意的。
三 如何安装旧版本boost:
1 下载旧版本,我的是下载1.55的,对应版本路径:
https://sourceforge.net/projects/boost/files/boost/1.55.0/
2 在根目录下执行:
./bootstrap.sh --with-toolset=clang
3 执行:
./b2 install --build-type=complete --layout=versioned threading=multi --prefix="/usr/lib/boost-1.55"
编译完成后使用:
4 设置环境变量
以boost库的存放目录/usr/boost为例, 打开/etc/profile, 追加以下内容(前两行为编译时路径):
export CPLUS_INCLUDE_PATH=/usr/boost/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/boost/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/boost/lib:$LD_LIBRARY_PATH
最后执行命令使环境变量生效:
# source /etc/profile
5 测试结果:
新建文件boost_test.cpp
#include <string> #include <iostream> #include <boost/version.hpp> #include <boost/timer.hpp> using namespace std; int main() { boost::timer t; cout << "max timespan: " << t.elapsed_max() / 3600 << "h" << endl; cout << "min timespan: " << t.elapsed_min() << "s" << endl; cout << "now time elapsed: " << t.elapsed() << "s" << endl; cout << "boost version" << BOOST_VERSION <<endl; cout << "boost lib version" << BOOST_LIB_VERSION <<endl; return 0; }
编译:g++ boost_test.cpp -o boost_test
四 boost库的科普: