Windows 下 VS Code+MinGW64+Clang 搭建C/C++环境

安装Clang

  • 下载地址
  • 在最新版本中选择 Windows (64-bit) 预编译版,即 Pre-Built Binaries 中的 Windows (64-bit)

Windows 下 VS Code+MinGW64+Clang 搭建C/C++环境

安装MinGW

解压后,将所有文件移动到C:\Program Files\LLVM

覆盖即可,无冲突,无需添加环境变量

安装相关插件

  • C/C++
  • C/C++ Clang Command Adapter
  • Clang-Format
  • Code Runner

更改相关设置

打开VScode,File-Preferences-Settings,右上角以JSON方式打开设置文件(settings.json)

C/C++ Clang Command Adapter

"C_Cpp.clang_format_path": "${env:LLVM}/bin/clang-format", //设置 clang-format 路径,以便实现代码格式化功能
"C_Cpp.default.compilerPath": "${env:LLVM}/bin/clang --target=x86_64-w64-mingw32", //设置 Clang 作为编译器,用 target 参数指定 MinGW64 作为编译器后端。
"C_Cpp.errorSquiggles": "Disabled", //禁用插件1 错误提示
"clang.cflags": ["--target=x86_64-w64-mingw32", "-std=c11"], //为插件2 设置编译参数
"clang.cxxflags": ["--target=x86_64-w64-mingw32", "-std=c++17"], //为插件2 设置编译参数
"clang.completion.enable": false, //禁用插件 (2) 代码补全(较慢),而利用插件 (1) 实现。

Clang-Format

添加以下语句,用Clang-Format插件来格式化代码

"[c]": {
    "editor.defaultFormatter": "xaver.clang-format"
},
"[cpp]": {
    "editor.defaultFormatter": "xaver.clang-format"
},

Code Runner

将默认的gcc/g++编译器替换为clang/clang++编译器

打开Code Runner的设置,找到Code-runner: Executor Map点击Edit in settings.json

"code-runner.executorMap"中的

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

注释掉,替换为

"c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe --target=x86_64-w64-mingw32 -lm && $dir$fileNameWithoutExt.exe",
"cpp": "cd $dir && clang++ $fileName -o $fileNameWithoutExt.exe --target=x86_64-w64-mingw32 -lm && $dir$fileNameWithoutExt.exe",

解决中文乱码

解决方法:将PowerShell编码改为UTF-8

  1. 以管理员模式启动 Windows PowerShell,执行Set-ExecutionPolicy Unrestricted
  2. 打开"打开此电脑文档",新建文件夹 "WindowsPowerShell" 并进入。新建文本文档并命名为:Microsoft.PowerShell_profile.ps1 用记事本编辑,粘贴以下代码并保存:$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
  3. 打开 PowerShell 执行:chcp
  4. 结果显示Active code page: 65001即为成功
参考资料
1.正确解决 VS Code / GCC / Clang 编译时中文乱码问题
2.在windows系统中搭建基于VSCode的C开发环境
3.Windows 下用 MinGW64 、 Clang 、 Git 和 VS Code 搭建 C++ 开发环境