{ "title": "在windows上配置完美的C++开发工具链", "category": "技术", "author": "ZX", "time": "2022-06-27", "background": "/img/13.webp" }

Windows上的C++开发向来让人不是很舒服,它缺少Linux中的包管理机制,使用第三方C++库极其麻烦,默认的命令行环境难用,编译器普遍老旧,或是离开了VS就不会编译程序了。本教程将解决上述大部分痛点。

本教程不适用于C/C++初学者,初学者建议使用带有自动补全的小熊猫devC++

配置Msys2环境

Msys2为Windows带来了Linux上的命令行工具和一套包管理器,在这里下载:https://www.msys2.org/

按照安装工具的提示安装完成后,需要将[安装位置]\msys64\usr\bin[安装位置]\msys64\mingw64\bin目录添加到环境变量PATH。需要注意的是,添加到系统变量和用户变量均可,但位置一定要在C:\WindowsC:\Windows\system32一系列后边,以免对正常的系统运行产生干扰。

配置完成后,打开一个cmd或者是powershell,就可以在里面用linux的命令了。

然后就可以安装工具链了

pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-clang mingw-w64-x86_64-clang-tools-extra mingw-w64-x86_64-xmake git

美化命令行环境并添加智能补全(可选)

我自己的命令行环境效果如下:

首先在Microsoft Store里安装Windows Terminal

然后在命令行中安装fish:pacman -S fish,然后安装oh-my-fish

最后在Windows Terminal添加fish.exe并作为默认项即可得到上面的效果

配置VS Code环境

安装插件:

C/C++和Clang-Format插件可按需配置,其中需要关闭C/C++的Intellisense功能,智能补全由clangd提供。

但是,clangd默认配置下只支持C++11标准,需要使用更新标准需要额外配置:

C:\Users\[用户]\AppData\Local下创建clangd文件夹,在clangd文件夹下创建config.yaml

If:
  PathMatch: .*\.cpp

CompileFlags:
  Add: [-std=c++20]

---
If:
  PathMatch: .*\.mpp

CompileFlags:
  Add: [-std=c++20]

---
If:
  PathMatch: .*\.hpp

CompileFlags:
  Add: [-std=c++20]

---
If:
  PathMatch: .*\.cc

CompileFlags:
  Add: [-std=c++20]

---
If:
  PathMatch: .*\.c

CompileFlags:
  Add: [-std=c17]

内容就是对于每个拓展名使用什么标准,也可以根据自己的需要添加其他的选项。

另外,需要在vscode中的clangd设置中第一项Arguements添加项--compile-commands-dir=.vscode

如果有运行单文件的需求,还可以安装插件Code Runner。

使用示例