在Ubuntu上安装boost库[转]
在编译kenlm的时候需要安装boost,去官网下载boost安装包,然后按照以下步骤安装。
-----------------以下内容,网上转载------------------------------
boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库
- apt-get install mpi-default-dev #安装mpi库
- apt-get install libicu-dev #支持正则表达式的UNICODE字符集
- apt-get install python-dev #需要python的话
- apt-get install libbz2-dev #如果编译出现错误:bzlib.h: No such file or directory
如果在安装以上库失败的话可以尝试一下用
sudo apt-get update
然后在进行安装。
上述函数库装好之后,就可以编译boost库了。
解压boost_1_49_0.tar.bz2,得到/boost_1_49_0,将当前工作目录切换到此文件夹下。
打开解压后的文件夹,里面有个bootstrap.sh的脚本文件,运行这个脚本
./bootstrap.sh
生成bjam,上述命令可以带有各种选项,具体可参考帮助文档: ./bootstrap.sh --help
。其中--prefix
参数,可以指定安装路径,如果不带--prefix
参数的话(推荐),默认路径是 /usr/local/include
和 /usr/local/lib
,分别存放头文件和各种库。执行完成后,会生成bjam
,已经存在的脚本将会被自动备份。
(注意,boost 1.49会在当前目录下,生成两个文件bjam
和b2
,这两个是一样的)
编译完成后,进行安装,也就是将头文件和生成的库,放到指定的路径(--prefix)下
注意,必须用管理员权限,否则无法写入到/usr/local/*目录下,sudo ./b2 install
安装结束后可以进行测试一下
建立一个test.cpp文件
touch test.cpp
vim test.cpp
#!c
#include<iostream>
#include<boost/bind.hpp>
using namespace std;
using namespace boost;
int fun(int x,int y){return x+y;}
int main(){
int m=1;int n=2;
cout<<boost::bind(fun,_1,_2)(m,n)<<endl;
return 0;
}
编译
g++ test.cpp -o test
执行:
./test
结果:
3