配置方法已更新,请采用更新的配置方案。

辣鸡学校教学使用的居然还是远古时代的 VC++ 6.0,肯定不能忍。
而作为天下第一编辑器的 VS Code,拿来写 C 当然是没问题的,就在这里记录一下配置过程。

安装

本文所使用的环境:Windows 10 x64
本文中的所有内容均可能因为版本更新而与实际情况有所出入,以下安装的内容本文均会注明所使用的版本号。

我们需要安装这些东西

  • Visual Stdio Code (v1.32.3.0) (VSCode 本体)
  • MinGW-w64 (安装时选择版本)(使用 GCC 作为编译器)
  • LLVM (v8.0.0) (使用 clang 用于静态检测,下载选择 Pre-Built Binaries: Windows (64-bit))

vscode.png

VSCode 的安装没什么说的,全程下一步就行了。

mingw-w64.png

MinGW-w64 安装时,如果在中国大陆,请确认自己的网络环境处于科学上网状态,否则安装可能会非常慢。

安装时有这些选项:

  • Version: 一般选择最新的即可,此处最新的为 8.1.0。
  • Architecture: 电脑系统架构,本文使用的 64 位系统则选择 x86_64
  • Threads: 操作系统接口协议,如果开发 Windows 程序,需要选择 win32,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix。
  • Exception: 异常处理模型,异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。如果你之前选择了 64 位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32 位。如果前面选的是 32 位,则可以用 dwarf 和 sjlj 两种异常处理模型。同样的,dwarf 的性能要优于 sjlj,但是它不支持 64 位。
  • Build revison: 暂时未知,默认即可。

mingw.png

安装完成后,我们还需要手动为 MinGW-w64 添加环境变量。鼠标右击 此电脑 - 属性 - 高级系统设置 - 高级 - 环境变量,在系统变量中找到 PATH 一项,双击打开,点击右侧浏览,选择 MinGW-w64 安装目录下的 mingw64\bin 文件夹,添加完成后确认即可。

path.png

要检查环境变量是否配置成功,Win + R 键然后输入 cmd 打开命令提示符,输入 gcc -v,如果返回了如图的一大堆信息,则表示配置成功。

cmd.png

LLVM.png

然后是 LLVM,安装过程中注意选择 「Add LLVM to system PTAH for all users」,之后下一步即可。

llvmpath.png

以上全部安装完成后,打开 VSCode,界面应该如下图所示。

VSC.png

由于 VSCode 本身只是一个编辑器,所以我们还需要安装一些插件来配合使用。点击左侧最下方的 Extension 图标,然后安装以下几个插件。

  • Chinese (Simplified) Language Pack for Visual Studio Code (v1.33.1) (为 VSCode 提供简体中文界面)
  • C/C++ (v0.22.1) (提供 C/C++ 语言支持)
  • C/C++ Clang Command Adapter (v0.2.3)(静态检测)
  • Code Runner (v0.9.7) (鼠标右键直接运行)

全部安装完成后重启 VSCode。

配置

点击 文件 - 打开文件夹,然后选择一个文件夹作为工作区用于存放我们今后的代码。
然后点击 文件 - 首选项 - 设置,分别找到下面几项设置:

  • Files: Default Language (新建文件的默认格式,c 或者 cpp)
  • code-runner.executorMap (Code Runner 执行的命令,设置如下,可根据个人需求修改)
"code-runner.executorMap": {
    //使用 C11 或 C++14
    "c": "cd $dir && gcc -fexec-charset=GBK -std=c11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
    "cpp": "cd $dir && g++ -fexec-charset=GBK -std=c++14 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},

此处和下面的配置使用了 -fexec-charset=GBK 参数是因为 VSCode 默认使用的 UTF-8 编码,而 CMD/PowerShell 为 GBK 编码,如果不加此参数强制转换编码,会导致中文输出乱码。

  • Code Runner: Run In Terminal(在终端中运行程序,建议勾选)
  • Code Runner: Save File Before Run (运行前保存文件,建议勾选)
  • C_Cpp: Clang_Format_fallbackStyle (代码格式化风格,具体配置请自行搜索 Clang Format)
  • C_Cpp: intelli Sense Cache Size(将其设置为 0,禁用 IntelliSense 缓存)
  • Editor: Format On Save (保存时进行格式化)
  • Clang: Cflags (静态检测的参数,设置如下,可根据个人需求修改)
"clang.cflags": [ // 控制c语言静态检测的参数
    "--target=x86_64-w64-mingw",
    "-std=c11",
    "-Wall"
],
"clang.cxxflags": [ // 控制c++静态检测时的参数
    "--target=x86_64-w64-mingw",
    "-std=c++17",
    "-Wall"
],

保存之后,我们现在已经可以写代码来运行了,新建一个文件来试试,在写代码的过程中,静态检测会在下方的 「问题」标签中实时显示,写完之后,鼠标右键选择 Run Code,结果就会显示在「终端」标签中。VSCode 默认会使用 PowerShell 作为终端,如果希望使用 cmd,可以按 F1 然后输入 >Terminal: Select Default Shell 选择终端,切换完成之后关闭下方终端重新启动即可。

hello.png

然后,我们再添加两个配置文件来使用 GDB 调试。

首先按 F1 输入 >Tasks: Configure Task,然后选择 C/C++: gcc.exe build active file,打开 task.json,修改以下几项:

  • label: 将其值修改为 build
  • commend: 使用的编译器,C 用 gcc,C++ 用 g++
  • args: 编译参数,可根据个人需求进行修改,如果使用 C++ 则将 -std=c11 修改为 -std=c++14
  "args": [
        "-g",
        "-Wall",
        "-std=c11",
        "-fexec-charset=GBK",
        "-lm",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.exe"
      ],

然后是第二个文件,继续按 F1 输入 >Debug: Open launch.json,选择 C++ (GDB/LLDB),打开 launch.json,同样的,我们需要修改以下几项:

  • program: 将要调试的程序路径,修改为 ${fileDirname}/${fileBasenameNoExtension}.exe
  • externalConsole: 默认为 true,调试时开启新的终端执行程序,如果为 false 则在内置终端中执行
  • miDebuggerPath:调试器的路径,我们修改为 gdb.exe

然后我们再添加一项(注意每一项之间用逗号分隔)

"preLaunchTask": "build" // 预执行的任务,build 对应 task.json 中的 label

完成后保存,现在我们在代码写完之后按 F5 即可启用调试。如果窗口一闪而过,可以调试时在需要在暂停的地方加入断点。

以上。


参考文章:
Visual Studio Code 如何编写运行 C、C++ 程序? - jacean的回答 - 知乎
VS Code 搭建 C/C++ 编译运行环境的四种方案 - ctuu的文章 - 知乎
《⑨也懂系列:MinGW-w64安装教程》著名C/C++编译器GCC的Windows版本

Last modification:May 14th, 2020 at 11:50 am
If you think my article is useful to you, please feel free to appreciate