欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Boost库的安装

程序员文章站 2022-05-31 23:38:06
...

说明

windows下的安装和linux下安装实际上大同小异,主要是弄清楚一些配置选项,和可执行文件的作用。


Windows下安装

配置环境:win8.1 64bit + VS2015
Step1:下载boost库,放到指定目录
目录为:d:\boost_1_62_0

Step2:打开命令提示符,找到指定目录下的bootstrap.bat文件,并运行

Step3:运行生成的bjam.exe文件
编译的时间很长,耐心等待这段时间已经生成我们想要的lib包了,编程时只需要添加lib包的目录和boost的目录即可。

Step4:测试
4.1 配置VS 2012
4.1.1 包含目录
在C/C++选项 -> 附加目录中,添加D:\boost_1_62_0。

4.1.2 包含库目录
在链接器中添加附加库目录中,添加D:\boost_1_62_0\stage\lib。

4.2 运行测试代码

#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
  int a = boost::lexical_cast<int>(“123”);
  double d = boost::lexical_cast<double>(“123.123”);

  std::string s1 = boost:lexical_cast<string>(a);
  std::string s2 = boost:lexical_cast<string>(d);

  std::cout << “Number : “ << a << “ “ << b << std::endl;
  std::cout << “String : “ << s1 << “ “ << s2 << std::endl;
  return 0;
}

linux下安装

简单安装

$ sudo ./bootstrap.sh
$ sudo ./b2 install --prefix=/user/local/boost_1_64_0

说明:加上sudo执行的原因是默认情况下是安装在/usr/local目录下,使用本地用户没有权限对/usr/local目录进行更改。此编译过程花费时间比较长。

测试代码

#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
  std::string line;

  boost::regex pat("^Subject: (Re: |Aw: )*(.*)");

  while (std::cin)
  {
    std::getline(std::cin, line);
    boost::smatch matches;

    if (boost::regex_match(line, matches, pat))
    {
      std::cout << matches[2] << std::endl;
    }
  }

  return 0;
}

产生可执行文件

g++ -I /usr/local/boost_1_64_0/include test.cpp -o test /usr/local/boost_1_64_0/libboost_regex.a

补充知识

b2 和 bjam

b2是Boost.Build的缩写,可以完全编译boost库。b2这个可执行程序被叫做Boost.Build引擎。

Boost.Build引擎来源于Proforce jam,最初只是做了一些修改,名字定为bjam。
之后,由于越来越多的改动,最终官方正式命名为b2。为了向前兼容,bjam实际上是b2的一份复制。

总之,可以随便使用。


参考

[1] boost第五节 简单安装:
http://www.boost.org/doc/libs/1_64_0/more/getting_started/unix-variants.html
[2] b2 和 bjam比较:
http://www.boost.org/build/doc/html/bbv2/faq/names.html