Ubuntu下安装 boost

2019-11-08  本文已影响0人  chjxidian

# 首先删除本地原有的 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

https://blog.csdn.net/cxiazaiyu/article/details/95363088

https://www.zybuluo.com/huangzhengsjtu/note/105805

上一篇 下一篇

猜你喜欢

热点阅读