这系列文章将逐一介绍Boost库的具体内容。首先我们从Boost在Windows下编译开始讲解。
对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用,如:
any
array
asio
conversion
crc
bind/mem_fn
enable_if
function
lambda
mpl
smart_pt
只有少部分需要编译成库文件,需要编译的库如下:
date_time
filesystem
function_types
graph
iostreams
math
mpi
program_options
python
regex
serialization
signals
system
test
thread
wave
要完全编译boost库需要先准备一些第三方库:
1. Regex所需Unicode支持类库 --
ICU
编译ICU较为简单,解开ICU包之后,在其目录下可以找到一个叫"allinone"的目录,用Visual studio或者visual studio express打开里面的allinone.sln,选择release,即可以编译完成,编译之后,将include目录和release目录下的库文件拷贝出来,分别放在C:\icu\include和C:\icu\lib.
2. Graph所需的Xml处理类库 --
Expat, 将该自解压文件解压到C:\expat即可。
3.Boost.MPI所需MPI类库 -- Boost的官方站点说需要MPICH或OpenMPI之类的支持,事实上在Windows下总是会提示需要MPIC++,事实上你需要的是
Microsoft Cluster Pack SDK,下载并默认安装在c:\Program Files\Microsoft Compute Cluster Pack下。
这里我遇到两个问题,一并说一下:
如果下载的是Microsoft HPC Pack 2008 SDK,或者Microsoft Compute ClusterPack不是装到默认的路径下,那bjam就会抓瞎,找不到mpic++的路径,这时候可以修改一下mpi.jam(在tools\build\v2\tools):
local cluster_pack_path_native = "你的路径" ;
现在完全编译Boost所需要的类库都准备好了。
下载Boost并解压到C:\boost.src,进入Visual studio prompt,然后运行boost.src目录下的bootstrap.bat,这个脚本会帮你生成编译所需的bjam.exe文件。
如果你机器上同时有多个不同版本的VC++存在,先修改project-config.jam,将
"using msvc ;"改为诸如" using msvc : 9.0 ;"
要支持mpi,你可以建立一个user-config.jam文件,然后添加一行“using mpi ;”即可
接下来的工作,我写了个小脚本boost.bat
@echo Making all Boost library -- By Ray Linn
set EXPAT_INCLUDE=C:\USR\INCLUDE
set EXPAT_LIBPATH=C:\USR\
set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft Compute Cluster Pack\include;C:\Program Files\Microsoft Compute Cluster Pack\Include\amd64;
set LIBPATH=%LIBPATH%;C:\Program Files\Microsoft Compute Cluster Pack\Lib\amd64;
echo adding -a to force rebuild
:debug
bjam -s HAVE_ICU=1 -s ICU_PATH=C:\usr threading=multi link=static runtime-link=shared variant=debug -s BZIP2_SOURCE="C:\win32_utils\bzip2-1.0.5" -s ZLIB_SOURCE="C:\win32_utils\zlib-1.2.5" --user-config="./user-config.jam" --prefix="C:\boost" install
:release
bjam -s HAVE_ICU=1 -s ICU_PATH=C:\usr threading=multi link=static runtime-link=shared variant=release -s BZIP2_SOURCE="C:\win32_utils\bzip2-1.0.5" -s ZLIB_SOURCE="C:\win32_utils\zlib-1.2.5" --user-config="./user-config.jam" --prefix="C:\boost" install
编译后会得到debug和release两个版本的boost,至此Boost编译完成。现在我们开始配置visual studio以方便以后使用Boost类库。
先设置一个环境变量
set Boost=C:\boost
接着打开Visual studio的菜单 tools-->Options...->projects and solutions-->VC++ directories 如图添加Boost类库的头文件和库文件的路径。
下面这一小段代码用于测试设置是否正确:
#include "stdafx.h"
#include <iostream>
#include <iterator>
#include <algorithm>
#include <string>
#include <boost/regex.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
std::string line;
static const 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;
}
}
如无差错,这段代码应该可以正确编译并链接。这时候可以删除boost.src。
- 大小: 50.7 KB
分享到:
相关推荐
boost_1_78_0编译及使用,下载好的1.78以及编译说明文档。
作者本人编译环境: windows 10 平台工具集:visual studio 2019 v142 注:!!!此处只有平台工具集相同才可以使用
基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的windows VS编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需linux版本,和自己...
1.将boost文件夹完整拷贝到VC6编译环境Include目录下 例如:C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE 2.将lib文件夹内部所有.lib文件拷贝到VC6编译环境lib目录下 例如:C:\Program Files\Microsoft ...
windows下编译好的boost1.57版本库,可以放心配置使用。
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
boost编译
里面带zlib1.2.11,按照下面的顺序依次编译即可,静态库在stage/lib/win32 or x64下,编译如下: 1、b2.exe -j8 --toolset=msvc-14.2 --without-python link=static runtime-link=shared threading=multi debug ...
Windows和Solaris上Boost安装和编译方法
使用VS2017编译的boost库最新版1.68的动态库和静态库,多线程参数,经过测试可用
Linux平台下编译安装使用的boost1.83.0版本压缩包
boost windows编译好的版本,可以直接使用
进入官网http://www.boost.org/,选择最新的版本,这里是1.66.0版本 下载完成之后,解压boost的编译将boost_1_66_0.tar
CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST= This CMake script will look for boost in <directory>. If it is not there, it will download ...
Boost C++ Libraries Version 1.63.0 ,由 Windows + MinGW 编译通过,含头文件。...对于QT使用,已经写好一个 boost.pri 文件放在Boost目录下,只需要在 *.pro 工程文件中 include($$PWD\Boost\boost.pri) 即可。
1.64.0版本的boost库的源码,Linux平台和Windows平台均可使用,Linux平台编译步骤1:./bootstrap.sh,2:./b2 。Windows平台编译步骤:1: ./bootstrap.bat,2:.\b2.exe
Boost_1.78.0 已经编译生成的库和头文件,及源码,使用文档等。下载后可以直接在项目中配置属性(visual studio 2019)。
Failed to build Boost.Build engine. Please consult bootstrap.log for further diagnostics. 查看bootstrap.log日志文件,结果是: Unknown toolset: vcunk 然后我打开bootstrap.bat查看(notepad++之类的工具), 我...
boost_1_78_0-编译完成的vs-2017-32and64 说明文档及例子
本资源是boost1.60源码库编译的python模块动态链接库包含x64 release和debug版本,所用的python为64位的python2.7.9 。 boost_python-vc140-mt-1_60.dll boost_python-vc140-mt-1_60.lib boost_python-vc140-mt-gd-...