背景

有时候需要在Windows上编写C++代码,但是已经习惯了linuxvim + gcc/clang,并且不想安装体积庞大的Visual Studio。本文介绍如何一步步在Windows上使用Visual Studio Code(以下简称VS Code)搭建一个C++的开发调试环境。

安装 VS Code

VS CodeMicrosoft开发的免费、开源、跨平台的文本编辑器。它同时支持WindowsLinuxMacOS等操作系统。它支持调试、内置了Git版本控制功能,同时也具有代码补全、代码重构等功能。还支持扩展程序并在编辑器中内置了扩展程序管理的功能。

安装VS Code很简单,官网下载Windows版本,双击安装。

安装完成之后,通过扩展程序管理搜索安装C/C++扩展。如下:

安装C/C++扩展

安装VIM扩展。如下:

安装VIM扩展

安装完成之后重新加载即可生效。

安装 msys2

利用msys2可以在Windows中使用Linux/Unix软件。msys2提供了一个包管理系统Pacman,可以很方便地安装各种软件。

1. 安装 msys2

msys2官网下载对应的安装程序。注意32位和64位系统的差别。

下载msys2安装包

双击安装,安装完成之后直接运行:

运行msys2

或者从开始菜单运行:

运行msys2

2. 更新包数据库及核心系统包

在打开的Terminal窗口中,输入pacman -Syu:

更新msys2

出现下面情况需要关闭Terminal,再次从开始菜单运行,然后输入pacman -Su更新剩余的部分:

更新msys2中断

更新msys2剩余部分

等待更新完成…

注意点:

  • 可能出现获取错误是由于网络原因,会自动重新尝试,一般会成功。
  • 有可能出现冲突,直接选y
  • 输出更新信息:下载大小、安装大小、净更新大小。输入y更新。
  • 由于网络状况可能需要较长时间。

下面gccclang按需安装!!!

3. 安装 gcc

输入pacman -Ss gcc搜索gcc结果如下:

搜索gcc

选择安装mingw-w64-x86_64-toolchain(64位),输入pacman -S mingw-w64-x86_64-toolchain:

安装gcc

4. 安装 clang

输入pacman -Ss clang搜索clang结果如下:

搜索clang

选择安装mingw-w64-x86_64-clang(64位),输入pacman -S mingw-w64-x86_64-clang:

安装clang

设置 Terminal

Windows上VS Code默认的Terminal为PowerShell。为了使用msys2需要改成msys2bash

选择文件->首选项->设置:

设置

左侧是默认设置,我们需要修改右侧的用户设置来覆盖默认的设置。这里设置了以下值:

  • window.zoomLevel: 窗口缩放,0为不缩放。
  • terminal.integrated.shell.windows: 设置为msys2bash的路径C:\\msys64\\usr\\bin\\bash.exe
  • terminal.integrated.shellArgs.windows: 启动bash的参数,设置为["-i"]表示启动bash后进入交互模式。
  • terminal.integrated.env.windows: 启动bash的环境变量,设置为{ "PATH": "/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowershell/v1.0/"}

设置完成后,使用Ctrl + ` 打开的Terminal为bash

编写程序

打开一个空目录,创建main.cpp文件,输入代码。然后g++ -g main.cpp编译,./a.exe运行:

gcc编译

也可以使用clang++ -g main.cpp编译,./a.exe运行:

clang编译

调试程序

VS Code中输入Ctrl + Shift + P,然后选择C/CPP: Edit Configurations:

cpp配置

在与Win32同层次上增加以下配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
            "name": "MinGW",
            "intelliSenseMode": "clang-x64",
            "includePath": [
                "${workspaceRoot}",
                "C:/msys64/mingw64/include",
                "C:/msys64/mingw64/c++/7.3.0",
                "C:/msys64/mingw64/c++/7.3.0/tr1",
                "C:/msys64/mingw64/c++/7.3.0/x86_64-w64-mingw32",
                "C:/msys64/mingw64/x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=7",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "browse": {
                "path": [
                    "C:/msys64/mingw64/lib/*"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }

主要配置包含路径,宏定义等内容。如下:

mingw配置

然后选择调试->添加配置修改内容如下:

调试配置

变量窗口,监视窗口,调用堆栈,一些控制按钮能完成基本的调试。

调试

库安装

通过msys2的包管理器pacman可以很方便的安装一些库。一般先pacman -Ss查找,找到自己想要安装的指定版本的库,然后通过pacman -S安装。例如下面是如何安装boost库的:

输入pacman -Ss boost查找:

查找boost库

选择安装mingw-w64-x86_64-boost,输入pacman -S mingw-w64-x86_64-boost安装:

安装boost库

使用:

使用boost库

参考资料

  1. GCC & clang on windows with Visual Studio Code + bash terminal + debugging
  2. CppCon 2017: Rong Lu “C++ Development with Visual Studio Code”
  3. MSYS2 homepage