下载Boost
我下载了最新的1.70版本
解压到英文目录${path}
,最好路径中也没有空格
生成编译项目
从“开始菜单”中,找到适用于vs2017 的x64本机命令工具
进入到````${path}```
执行
bootstrap.bat
配置编译参数
打开project-config.jam
文件,设定vs2017的toolset,其中的cl.exe目录应该是固定的。注意
vs2015的VC版本是msvc-14.0,
vs2017的VC版本是msvc-14.1
# Boost.Build Configuration
# Automatically generated by bootstrap.bat
import option ;
using msvc : 14.1 : "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe";
option.set keep-going : false ;
命令行参数
现在用b2编译boost库
b2 -j8 toolset=msvc-14.1 address-model=64 threading=multi -link=shared threading=multi runtime-link=shared --build-dir=${临时编译目录} --build-type=complete stage --stagedir=${编译库目录} install --prefix ${安装的目录}
这里的编译参数可以填:
-j8
:启用8线程编译,具体看个人电脑toolset
:设置编译器,如果用VC,设msvc, 用MinGW就设gcc。address-mode
:address-model=64,如果没有这个属性的话,会默认生成32位的平台库stage
:可选install,选stage只生成库(静态库和动态库),install还包含include目录--build-dir
:编译的临时文件存放位置。--stagedir
:存放编译后库文件的路径,默认是stage。--build-type
=complete:编译所有版本link
=static|shared
:决定使用静态库还是动态库。threading
=single|multi
:决定使用单线程还是多线程库。runtime-link
=static|shared
: 决定是静态还是动态链接C/C++标准库。
link
和runtime-link
选成一样的,编译肯定不会错
prefix
:库的安装位置,如不设置,安装目录为C:\Boost
在Cmake中使用
在CMakeLists.txt中
set(BOOST_ROOT ${path})
Find_package(Boost)
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
自己配置install目录后,cmake的find_package可能找不到,这时多加几个变量就行了
BOOST_ROOT C:\SDKs\boost_1_58_0\boost
BOOST_INCLUDEDIR ${BOOST_ROOT}/include
BOOST_LIBRARYDIR ${lib目录},比如"${BOOST_ROOT}/lib64-msvc-14.1"