1. 環境
-
vs code 版本: 1.50.0 (user setup)
-
Microsoft Visual C++ (MSVC) compiler toolset
2. 安裝 Microsoft Visual C++ (MSVC) compiler toolset
這里可以通過
安裝 Visual Studio 來安裝 MSVC 編譯工具集,也可以通過安裝
Build Tools for Visual Studio 來安裝 MSVC 編譯工具集。
這里以安裝
Build Tools for Visual Studio 為例:
You can also install just the
C++ Build Tools
, without a full Visual Studio IDE installation. From the Visual Studio
Downloads
page, scroll down until you see
Tools for Visual Studio
under the
All downloads
section and select the download for
Build Tools for Visual Studio
。
Build Tools for Visual Studio 安裝完成后自帶編譯器
cl.exe(類比 Linux
GCC G++)和 CMake 生成工具
cmake.exe。
3. 整體環境搭建流程參看:
CMake Tools on Linux
4. 搭建 CMake Tools on Win10 Using Build Tools for Visual Studio
為了在 Win10 上用
Build Tools for Visual Studio 實現類似的上述環境搭建,需要修改兩個地方。
4.1 Select a kit
1、運行
CMake: Select a Kit 命令,如果可以自動搜索到 MSVC 編譯器,那就很簡單了,按需選擇一個就行。
此時運行
CMake: Edit User-Local CMake Kits 命令可以查看
cmake-tools-kits.json 的配置。如果可以自動掃描到 MSVC 編譯器,這個配置是自動生成的,不需要手動修改,這里只是查看一下里邊的設置格式和語法。
[
{
"name": "Visual Studio 生成工具 2019 Release - amd64",
"visualStudio": "b8e77987",
"visualStudioArchitecture": "x64",
"preferredGenerator": {
"name": "Visual Studio 16 2019",
"platform": "x64",
"toolset": "host=x64"
}
},
{
"name": "Visual Studio 生成工具 2019 Release - amd64_x86",
"visualStudio": "b8e77987",
"visualStudioArchitecture": "x64",
"preferredGenerator": {
"name": "Visual Studio 16 2019",
"platform": "win32",
"toolset": "host=x64"
}
},
{
"name": "Visual Studio 生成工具 2019 Release - x86",
"visualStudio": "b8e77987",
"visualStudioArchitecture": "x86",
"preferredGenerator": {
"name": "Visual Studio 16 2019",
"platform": "win32",
"toolset": "host=x86"
}
},
{
"name": "Visual Studio 生成工具 2019 Release - x86_amd64",
"visualStudio": "b8e77987",
"visualStudioArchitecture": "x86",
"preferredGenerator": {
"name": "Visual Studio 16 2019",
"platform": "x64",
"toolset": "host=x86"
}
}
]
2、正常情況下是可以自動掃描到 MSVC 編譯器的,如果運行
CMake: Select a Kit 命令無法自動搜索到 MSVC(Microsoft Visual C++) 的編譯器,需要手動指定 MSVC 編譯器
cl.exe 的位置。
cl.exe 的位置在可以在
Build Tools for Visual Studio 的安裝路徑下搜索得到,默認安裝路徑為:
C:\Program Files (x86)\Microsoft Visual Studio。此路徑下
cl.exe 有四個,分別對應不同平台的版本:
運行
CMake: Edit User-Local CMake Kits 命令,然后自動打開
cmake-tools-kits.json,在該文件中添加如下配置:
[
{
"name": "msvc-x32",
"compilers": {
"C": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.27.29110\\bin\\Hostx86\\x86\\cl.exe",
"CXX": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.27.29110\\bin\\Hostx86\\x86\\cl.exe"
}
},
{
"name": "msvc-x64",
"compilers": {
"C": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.27.29110\\bin\\Hostx64\\x64\\cl.exe",
"CXX": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.27.29110\\bin\\Hostx64\\x64\\cl.exe"
}
}
]
上邊所說的
cl.exe 有四個,這里只用添加兩個就行了。經實驗這種配置是可行的,當然也可以仿照自動生成的
cmake-tools-kits.json
配置,不過這需要自己摸索了。
3、配置完以上再次運行
CMake: Select a Kit
命令就可以選擇編譯器了。
4.2 Select a variant
1、這一步需要指定
CMake 可執行程序的路徑,和要使用的
CMake 生成器。安裝完
Build Tools for Visual Studio 后自帶 CMake 可執行程序
cmake.exe,不需要再額外下載第三方工具了。當然,如果用的
MinGW-w64 編譯器而不是安裝的
Build Tools for Visual Studio,那么需要額外安裝 CMake 生成工具,
Download | CMake。
2、如果
4.1 Select a kit 中的
cmake-tools-kits.json 是自動生成的,那么可以跳過后續操作了。
3、如果
4.1 Select a kit 中的
cmake-tools-kits.json 是自己手動配置的,這里需要如下設置:
1) 查看
Build Tools for Visual Studio 自帶的 CMake 可執行程序
cmake.exe 路徑:
2) 打開 vs code
CMake Tools 擴展的設置頁面,添加
CMake 可執行程序路徑:
3) 指定要使用的
CMake 生成器:
所謂的生成器就是指定要用 CMake 工具生成的項目類型,Win10 下就是 Visual Studio 工程,Linux 下就是 Makefile 工程。
生成器有這些:
[cmake] Generators
[cmake] * Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
[cmake] Use -A option to specify architecture.
[cmake] Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
[cmake] Optional [arch] can be "Win64" or "ARM".
[cmake] Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
[cmake] Optional [arch] can be "Win64" or "ARM".
[cmake] Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
[cmake] Optional [arch] can be "Win64" or "ARM".
[cmake] Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
[cmake] Optional [arch] can be "Win64" or "ARM".
[cmake] Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
[cmake] Optional [arch] can be "Win64" or "IA64".
[cmake] Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
[cmake] Optional [arch] can be "Win64" or "IA64".
[cmake] Borland Makefiles = Generates Borland makefiles.
[cmake] NMake Makefiles = Generates NMake makefiles.
[cmake] NMake Makefiles JOM = Generates JOM makefiles.
[cmake] MSYS Makefiles = Generates MSYS makefiles.
[cmake] MinGW Makefiles = Generates a make file for use with
[cmake] mingw32-make.
[cmake] Unix Makefiles = Generates standard UNIX makefiles.
[cmake] Green Hills MULTI = Generates Green Hills MULTI files
[cmake] (experimental, work-in-progress).
[cmake] Ninja = Generates build.ninja files.
[cmake] Ninja Multi-Config = Generates build-<Config>.ninja files.
[cmake] Watcom WMake = Generates Watcom WMake makefiles.
[cmake] CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
[cmake] CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
[cmake] CodeBlocks - NMake Makefiles JOM
[cmake] = Generates CodeBlocks project files.
[cmake] CodeBlocks - Ninja = Generates CodeBlocks project files.
[cmake] CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
[cmake] CodeLite - MinGW Makefiles = Generates CodeLite project files.
[cmake] CodeLite - NMake Makefiles = Generates CodeLite project files.
[cmake] CodeLite - Ninja = Generates CodeLite project files.
[cmake] CodeLite - Unix Makefiles = Generates CodeLite project files.
[cmake] Sublime Text 2 - MinGW Makefiles
[cmake] = Generates Sublime Text 2 project files.
[cmake] Sublime Text 2 - NMake Makefiles
[cmake] = Generates Sublime Text 2 project files.
[cmake] Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
[cmake] Sublime Text 2 - Unix Makefiles
[cmake] = Generates Sublime Text 2 project files.
[cmake] Kate - MinGW Makefiles = Generates Kate project files.
[cmake] Kate - NMake Makefiles = Generates Kate project files.
[cmake] Kate - Ninja = Generates Kate project files.
[cmake] Kate - Unix Makefiles = Generates Kate project files.
[cmake] Eclipse CDT4 - NMake Makefiles
[cmake] = Generates Eclipse CDT 4.0 project files.
[cmake] Eclipse CDT4 - MinGW Makefiles
[cmake] = Generates Eclipse CDT 4.0 project files.
[cmake] Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
[cmake] Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
因為用的 MSVC 編譯器,這里可選的應該只能是 Visual Studio 類的,又因為安裝的是
Build Tools for Visual Studio,所以這里最好就用
Visual Studio 16 2019 選項。如果用的
MinGW-w64 編譯器那么這里應該設置為
MinGW Makefiles
選項。
4) 可以直接編輯
setting.json 添加以上兩個配置:
"cmake.cmakePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.exe",
"cmake.generator": "Visual Studio 16 2019"
5. 注意
以上涉及到的所有路徑需要根據
Build Tools for Visual Studio
實際安裝的版本和路徑做對應對應修改。