Visual Studio编译Boost

前期准备

下载

进入Boost官网,点击最新版本,进入选择下载页面。如果使用Windows操作系统,下载Boost源码的7z压缩包。
Boost官网:https://www.boost.org

解压

下载Boost源码压缩包之后,将其解压至指定位置。我把Boost源码解压至E:\Download\Boost,而Boost的根目录为E:\Download\Boost\boost_1_68_0

版本

此Boost版本的默认编译配置仅支持2017及以下的VS版本,而Boost新版本才默认支持2019及以上的VS版本。不同VS版本对应MSVC版本和bootstrap参数如表所示:

VS版本2003200520082010201220132015201720192022
MSVC版本7.18.09.010.011.012.014.014.114.214.3
bootstrap参数vc71vc8vc9vc10vc11vc12vc14vc141vc142vc143

编译步骤

引导

按Windows键打开开始菜单,寻找Developer Command Prompt for VS 2017或者VS 2017的开发人员命令提示符,其他VS版本的命令工具名称类似,右击弹出右键菜单,选择以管理员身份运行,出现如图界面:
Developer Command Prompt for VS 2017
切换至Boost根目录:

cd E:\Download\Boost\boost_1_68_0

根据VS版本,确定bootstrap参数,执行以下命令:

bootstrap.bat vc141

此时生成文件如图所示:
引导之后的Boost根目录
可执行文件b2.exe和bjam.exe都是构建工具,用于构建Boost库。而project-config.jam是配置文件,其内容如下:

import option ; 
 
using msvc : 14.1 ; 
 
option.set keep-going : false ; 

编译

执行以下命令编译完整Boost,具体编译时间由PC配置和系统状态决定。

b2.exe install --toolset=msvc-14.1 --prefix="E:\Download\Boost\boost_1_68_0" --build-type=complete

在编译完成之后,于Boost根目录可以看见如图三个文件夹:
完成编译的Boost根目录
可以删除编译产生的临时文件夹bin.v2。

参数

b2命令参数形式:
b2 [options] [properties] [targets]

类型可选项说明
targetsinstall将头文件和库文件分别安装至配置位置的文件夹include与lib。
targetsstage仅生成库文件,将其安装至配置位置的文件夹stage。
options–prefix对于install方式,为安装体系结构无关文件配置位置。Windows默认为C:\Boost,类Unix为/usr/local。
options–exec-prefix对于install方式,为安装体系结构相关文件配置位置。默认与–prefix相同。
options–libdir对于install方式,为安装库文件配置位置。默认在–prefix指定目录生成文件夹lib。
options–includedir对于install方式,为安装头文件配置位置。默认在–prefix指定目录的生成文件夹include。
options–stagedir对于stage方式,为安装库文件配置位置。默认在Boost根目录生成文件夹stage。
options–build-type指定编译方式。可选minimal/complete,默认是最小构建,可以指定完全构建。
options–build-dir指定构建时中间文件的存放位置。默认于Boost根目生成文件夹bin.v2,在构建完成之后可以删除。
options–show-libraries仅展示需要构建和安装的Boost库文件列表。
options–help介绍b2使用方法及参数含义。
options–with-<library>仅构建指定库文件。
options–without-<library>不生成指定库文件。默认生成所有库文件。
propertiestoolset指定构建工具集。若不指定则自动搜索本地可用工具集。
propertiesvariant指定编译版本。可选debug/release,默认编译二者。
propertieslink指定构建静态库或者动态库。可选static/shared,默认构建二者。
propertiesruntime-link指定静态或者动态链接运行时库。可选static/shared,默认编译二者。
propertiesthreading指定生成单线程或者多线程二进制文件。可选single/multi,默认生成二者。

测试Boost库

创建项目

打开Visual Studio 2017,在菜单栏依次点击文件–>新建–>项目,操作步骤如图所示:
文件菜单
弹出新建项目窗口,左边依次展开已安装–>模板–>Visual C++,并选中Visual C++,右边选择空项目,下边填写项目名称,选择性地修改项目存放的位置,最后点击确定,完成新建项目。操作步骤如图所示:
新建项目窗口
在创建项目之后,解决方案资源管理器窗口显示有项目组织结构,界面内容如图所示:
解决方案资源管理器
右击项目的源文件文件夹,弹出右键菜单,依次选择添加–>新建项,操作步骤如图所示:
新建源文件
弹出添加新项窗口,窗口内容如图所示:
添加新项窗口
点开左上角的已安装,选中Visual C++,在右边窗格选择C++文件(.cpp),在下边填写源文件名称位置默认不变,之后点击添加
完成以上操作之后,出现新建源文件的编辑窗口,界面内容如图所示:
编辑窗口
右击解决方案资源管理器窗口的项目,弹出右键菜单,选择属性,操作步骤如图所示:
项目右键菜单
弹出属性页窗口,左边依次展开配置属性–>C/C++,选中常规,查看右边SDL检查输入框的设置,操作步骤如图所示:
项目属性页
倘若未设置或者设置为否(sdl-),直接点击取消
如果原来设置为是(/sdl),单击输入框,点击输入框右边向下的尖角,出现两个选项,选择否(/sdl-),并且点击确定。操作步骤如图所示:
SDL检查设置

导入库

打开项目属性页窗口,左边依次展开属性配置–>C/C++,选中常规,在右边附加包含目录输入框中,填入编译Boost库生成的include文件夹路径。由于include文件夹还有以boost版本命名的文件夹,因此填入的路径需要接上这个文件夹名。我的附加包含目录为E:\Download\Boost\boost_1_68_0\include\boost-1_68,界面内容如图所示:
以绝对路径方式配置附加包含目录

由于Boost头文件和库文件繁多,为避免复制耗时和项目臃肿,因此以绝对路径方式配置路径,待到打包应用之时,再行拷贝依赖的库文件,并以相对路径方式配置。

左边展开链接器,选中常规,在右边附加库目录输入框中,填入编译Boost库生成的lib文件夹路径。我的附加库目录为E:\Download\Boost\boost_1_68_0\lib,界面内容如图所示:
以绝对路径配置附加库目录
最后点击确定,完成Visual Studio 2017以绝对路径方式引用Boost库的步骤。

测试代码

在创建的源文件中编写以下代码,测试Boost库是否导入成功。

#include <cstdlib>
#include <list>
#include <iostream>

#include <boost/assign.hpp>
#include <boost/foreach.hpp>

#define reverse_foreach BOOST_REVERSE_FOREACH

int main()
{
	using namespace boost::assign;

	// 类似于C++标准的初始化列表
	std::list<int> iList = list_of(1)(2)(3);

	iList += 4, 5, 6;
	push_back(iList)(7)(8)(9);
	push_front(iList)(0);

	reverse_foreach(auto& i, iList)
		std::cout << i << ' ';
	return EXIT_SUCCESS;
}

编译以上代码,运行程序,结果如图所示:
运行结果

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值