C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars64.bat 这个脚本。该脚本的作用是把MSVC和Windows SDK的包含路径、库路径等添加到环境变量,然后打开一个cmd命令行。所以在这个cmd运行期间能够直接检测到编译C++所需的所有依赖项。

我们可以试着在这个cmd当中输入 SET ,查看已经生效的所有环境变量。

利用这些信息,我们在常规的cmd或PowerShell里也能正常编译C++代码。具体的过程会在后面介绍。
默认cmd的字体有点难看,我个人习惯在Windows Terminal 里面开一个cmd终端,然后执行下面的命令:
> "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars64.bat"
这就可以让我们的新终端也能够检测到MSVC环境,如下图所示。

编译Boost
然后, cd 到Boost的根目录,执行下面的命令:
> bootstrap.bat > b2 --prefix=build install
等待编译完成之后,在 buildlib 目录下会出现一大堆 .lib 文件,我们只会用到 libboost_unit_test_framework-vc142-mt-gd-x64-1_73.lib 这一个文件。
当然,如果只想编译单元测试模块,可以用下面的命令:
> b2 address-model=64 architecture=x86 --with-test link=static --prefix=build install
命令行编译和测试
这里我们先在命令行里编译C++项目,并运行单元测试。 cd 到项目目录下,然后执行以下命令:
> mkdir build > cd build > cmake -G "Ninja" .. > ninja test_main > test_main.exe
在Windows平台上,生成工具可以选择VS提供的NMAKE,也可以用Ninja。微软的NMAKE类似于Linux平台的make工具。按照这个 视频 的介绍,Ninja的编译速度要比NMAKE快一些。

可以发现,在 vcvars64.bat 所提供的环境下,使用的是VS所安装的CMake和Ninja,版本号比我们自己安装都要老一些。下面我们介绍如何在VS Code中配置C++的编译和测试环境。
配置VS Code
settings.json
打开VS Code的设置,在 settings.json 中添加下面几行内容,可以起到类似 vcvars64.bat 的作用:
{
"terminal.integrated.shell.windows": "C:WindowsSystem32cmd.exe",
"terminal.integrated.env.windows": {
"PATH" : "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023binHostx64x64;C:Program Files (x86)Windows Kits10bin10.0.18362.0x64;E:CMakebin;E:dev-libninja",
"INCLUDE": "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023include;C:Program Files (x86)Windows Kits10Include10.0.18362.0ucrt",
"LIB": "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023ATLMFClibx64;C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx64;C:Program Files (x86)Windows Kits10lib10.0.18362.0ucrtx64;C:Program Files (x86)Windows Kits10lib10.0.18362.0umx64"
},
"cmake.cmakePath": "E:CMakebincmake.exe"
}










