{ "title": "在windows上配置完美的C++开发工具链", "category": "技术", "author": "ZX", "time": "2022-06-27", "background": "/img/13.webp" }
Windows上的C++开发向来让人不是很舒服,它缺少Linux中的包管理机制,使用第三方C++库极其麻烦,默认的命令行环境难用,编译器普遍老旧,或是离开了VS就不会编译程序了。本教程将解决上述大部分痛点。
本教程不适用于C/C++初学者,初学者建议使用带有自动补全的小熊猫devC++。
Msys2为Windows带来了Linux上的命令行工具和一套包管理器,在这里下载:https://www.msys2.org/
按照安装工具的提示安装完成后,需要将[安装位置]\msys64\usr\bin
和[安装位置]\msys64\mingw64\bin
目录添加到环境变量PATH。需要注意的是,添加到系统变量和用户变量均可,但位置一定要在C:\Windows
和C:\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并作为默认项即可得到上面的效果
安装插件:
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。
创建项目
xmake create xxx
创建项目xmake f -p
切换平台,如windows
(使用msvc编译器)、mingw
、linux
等xmake
命令编译xmake r
运行xmake && xmake r
编译并运行在vscode中使用