编译boost与测试

1.下载boost_v1.57.0版本。
http://heanet.dl.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.gz
2.解压
tar -xf boost_1_57_0.tar.gz
3.进入目录,执行以下命令
cd boost_1_57_0 && ./bootstrap.sh
4.boostrap.sh会生成一个b2的执行文件。执行这个文件
./b2
默认是最小编译,也可以完全编译,他会对Boost进行完整编译,生成所有调试版、发行版的静态库和动态库,如下所示:
./b2 --build-type=complete --layout=versioned
经实践,在编译阶段–prefix参数没有意义,它只有按装阶段时,指定地址才有意义,否则仍旧默认安装在/usr/local/include目录下。
它会编译boost文件,如果报错bzlib.h头文件错误,则可以按以下命令查找
sudo yum whatprovides */bzlib.h
该命令会列表出哪些库会有这个文件,然后你安装那个库就可以了。
sudo yum install bzip2-devel
其实大部份boost的头文件可以直接引用就可以了,但部分与平台相关文件则需要编译,才行。如下这些库:
Boost.Chrono
Boost.Context
Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.Locale
Boost.MPI
Boost.ProgramOptions
Boost.Python (see the Boost.Python build documentation before building and installing it)
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Timer
Boost.Wave
5.安装boost
./b2 install
头文件会安装到/usr/local/include目录下,库文件会安装在/usr/local/lib下。
./b2 install --prefix=/boost-1.57.0
指定安装目录。
6.在CMake环境中测试。
CMakeLists.txt中编辑如下:
cmake_minimum_required(VERSION 3.5)
project(boostTest)

include_directories("/gcc-4.8.5/include/c++/4.8.5")
include_directories("/usr/local/include/")
link_directories("/usr/local/lib")
link_directories("/gcc-4.8.5/lib64")
set(CMAKE_C_COMPILER "/gcc-4.8.5/bin/gcc")
set(CMAKE_CXX_COMPILER "/gcc-4.8.5/bin/g++")

#等价于cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/gcc-4.8.5/bin/gcc -DCMAKE_CXX_COMPILER=/gcc-4.8.5/bin/g++ /home/abc/Downloads/cpp-netlib-0.12.0-final
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(boostTest ${SOURCE_FILES})

在main.cpp文件如下
#include
#include

int main() {
std::cout << "Hello, World!" << std::endl; std::cout << "Using Boost " << BOOST_VERSION / 100000 << "." // major version << BOOST_VERSION / 100 % 1000 << "." // minor version << BOOST_VERSION % 100 // patch level << std::endl; return 0; }

7.编译执行试试。