您的位置:首页 > 运维架构 > Linux

Centos编译boost

2016-01-11 11:53 501 查看
Centos编译boost
http://blog.sina.com.cn/s/blog_6f2caee40100uhj6.html <div id="sina_keyword_ad_area2" "="">
1.下载最新的boost http://www.boost.org/
2.解压文件
tar -xzvf boost_1_45_0.tar.gz

3.编译bjam
进入boost_1_45_0目录中,运行./bootstrap.sh,完成后会得到一个bjam

4.编译boost
./bjam --with-date_time --with-system --with-regex --with-thread --with-filesystem --with-serialization --with-iostreams --with-math --with-mpi --with-program_options --with-python --with-math
--with-signals --layout=tagged install variant=debug,release link=static --runtime-link=static threading=multi stage

5.查看boost
编译完成后,在/usr/local/include/boost就有最新的boost头文件了,在/usr/local/lib就有编译好的.a库文件了。
虽然usr/local/include和/usr/include都有目录,但GCC是先访问/usr/local/include,所以编译完成后,就可以默认使用boost了。

6.测试boost
vi testboost.cpp

#include <iostream>
#include <boost/version.hpp>

int main()
{
std::cout<<BOOST_VERSION<<std::endl;
return 0;
}

编译:g++ -o testboost testboost.cpp

//一下自定义目录
3.编译bjam

./bootstrap.sh --prefix=/home/alex/boost

4. ./bjam  install


5.设置环境变量

在/etc/profile.d新建可执行文件boost.sh,添加文件内容:

vi /etc/profile.d/boost.sh


#!/bin/sh#boost settings


BOOST_ROOT=/work/BOOST/boost1_60/


BOOST_INCLUDE=/work/BOOST/boost1_60/include


BOOST_LIB=/work/BOOST/boost1_60/lib
export BOOST_ROOT BOOST_INCLUDE BOOST_LIB


将其保存为/etc/profile.d/boost.sh,并使用chmod a+x boost.sh设置执行权限。
命令行执行:source
/etc/profile.d/boost.sh

第一个测试文件是lex.cpp:


#include <boost/lexical_cast.hpp>


#include <iostream>


int main()


{


using boost::lexical_cast;


int a = lexical_cast<int>("123");


double b = lexical_cast<double>("123.12");


std::cout<<a<<std::endl;


std::cout<<b<<std::endl;


return 0;


}

编译:

g++ lex.cpp -I$BOOST_ROOT -o lex


运行:

./lex


输出:

123
123.12


你可以将$BOOST_ROOT改为$BOOST_INCLUDE,如果你没有设置环境变量,可以改为/opt/boost_1_33_1或者/usr/local/include/boost-1_33_1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: