Boost库安装教程

1. 下载

这里是一linux操作系统为例。
直接从官网上下载最新的boost库, boost_1_61_0.tar.bz2;
下载完后放到你所要安装的路径中,然后运行解压,通常我们会放在路径/usr/local

tar --bzip2 -xf /usr/local/boost_1_61_0.tar.bz2

2. Header-Only的库

解压完后我们第一个关心的事情是怎么去使用boost库来实现我们自己的应用程序,其实大部分的Boost库都是head-only的:只需要包含头文件就可以进行编译运行了,而不需要链接相应的boost库。
以下列的是那些必须单独编译的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

3. 一个简单的使用Boost的程序

这个简单的程序只使用了header-only的库,这个程序从标准输入里面读取了一串整数,然后使用Boost.Lambda表达式来依次乘3,然后写到标准输出中

#include 
#include 
#include 
#include 

int main()
{
    using namespace boost::lambda;
    typedef std::istream_iterator in;

    std::for_each(
        in(std::cin), in(), std::cout << (_1 * 3) << " " );
}

我们这里使用CMake来进行编译,下面是CMakeLists.txt文件的内容

project(tutorial-0)
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 14)

find_package(Boost REQUIRED)

if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})
    
    add_executable(foo foo.cpp)
endif()

编译完成后,运行如下命令来验证这个小程序,

echo 1 2 3 | ./example

4. 准备好使用一个单独编译的Boost库

如果你希望使用一个单独编译的Boost库,那么首先要对之前下载解压的Boost工程进行编译
Boost库的编译安装还有一些依赖库,需要先安装

apt-get install mpi-default-dev libicu-dev python-dev libbz2-dev

安装完成后,回到boost库的路径下,运行如下命令

$ ./bootstrap.sh --prefix=local/usr/install/boost_1_61_0
$ ./b2 install

--prefix后面跟的是你安装boost库的路径,安装完成后所有的头文件和lib库都会保存在这个路径下,

$ tree -L 1
.
├── include
└── lib

5. 示例程序

这个程序用到了boost提供的正则匹配库,

#include 
#include 
#include 

int main()
{
    std::string line;
    boost::regex pat("tcp:*");
    
    while(std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        
        if(boost::regex_match(line, matches, pat))
            std::cout << matches[0] << std::endl;
    }
}

依旧通过CMake进行编译

  • 首先设置Boost库的路径,也就是之前的安装路径
  • 然后使用find_package来搜索这个路径下面是否有需要的regex库
  • 最后设置头文件搜索路径以及把找到的库link到应用程序
project(tutorial-0)
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 14)

set(BOOST_ROOT /usr/local/install/boost_1_61_0)

find_package(Boost COMPONENTS regex REQUIRED)

if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})

    add_executable(foo foo.cpp)
    target_link_libraries (foo ${Boost_LIBRARIES})
endif()

编译完成后运行app查看结果。

6. 参考链接

Getting Started on Unix Variants

你可能感兴趣的:(Boost库安装教程)