vs2017 编译 动态 x64 boost

下载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++标准库。

linkruntime-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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值