记录一次Win下的C++环境搭建(VSCode+MinGW+Clangd+xmake)
这套环境是VSCode+MinGW(MSYS2)+Clangd+Xmake的配置。
创新互联建站从2013年创立,先为汾阳等服务建站,汾阳等地企业,进行企业商务咨询服务。为汾阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
MinGW
网上很多教程引导去的MinGW-w64 gcc版本只更新到了8.1.0就停更了,而实际中gcc版本已经到达12了,因此我们使用MSYS2去安装GCC。
首先使用scoop安装msys2(在main bucket中就有):
scoop install msys2
终端中输入msys2
进入环境,下载minGW:
pacman -S mingw-w64-x86_64-toolchain
下面会提示选择哪些工具,如果不是硬盘空间实在有限的话,直接回车默认安装全部即可。
随后找到minGW的bin目录(这里推荐一手Listary,直接搜索g++.exe
打开文件目录即可,非常方便),添加环境变量,此时GCC编译器就算是安装成功了。
clangd
这个是花费了我最多精力的地方,有一说一,clangd在代码提示补全上确实吊打vscode自带的C/C++扩展,但是在Windows上的配置费了一番功夫
在vscode扩展商店中搜索clangd下载,完成后右下角会弹窗提醒你安装clangd server,点击Install即可直接安装,这一点非常便捷,clangd默认直接绑定了VS路径下的MSVC库,如果需要修改为MinGW则要改动target。
配置如下:
{
"clangd.arguments": [
"--header-insertion=never",
"--completion-style=detailed",
"--query-driver=D:\\6-EnglishPathSoftwates\\ScoopUser\\apps\\msys2\\2022-06-03\\mingw64\\bin\\g++*"
],
"clangd.fallbackFlags": [
"-std=c++14",
"-I${workspaceFolder}/src/includes",
"--target=x86_64-w64-windows-gnu"
]
}
逐一解释:
- header-insetion:是否自动引入头文件,这里设置的是从不。
- completion-style:设置提示格式,这里设置的是展示所有细节。
- query-driver:设置clangd server的驱动库路径,这里我设置了mingw的路径,但似乎没有效果(clangd仍然链接到了MSVC当中)
- std:设置c++标准
- -I:设置用户自定义的库路径
- --target:设置链接目标,这里改成了GNU,即对应MinGW
学习C++ Primer这本书的需要注意一下,虽然全书是按照C++11标准写的,但是这里如果设置成C++11,clangd会书中的附带代码报错(比如Sales_item.h)。
xmake
这是前段时间发现的一个新的构建工具(也不算新了,好像已经release两年了),用的是lua脚本,在我学习C++Primer的过程中感觉比cmake更加简洁易懂,用它管理我写的习题集非常轻松。贴一段xmake的配置代码:
target("E632")
set_kind("binary")
add_files("src/chapter6/e632.cpp")
target("E633")
set_kind("binary")
add_files("src/chapter6/e633.cpp")
target("E642")
set_kind("binary")
add_files("src/chapter6/e642.cpp")
target("E644")
set_kind("binary")
add_files("src/chapter6/e644.cpp")
这款工具也可以在scoop中直接下载,vscode也提供了官方插件快速操作(不过我觉得命令行已经够傻白甜了),推荐大家使用。
同时它也可以根据lua脚本直接生成CmakeList文件(也就是向下兼容Cmake),这个功能我没有深入体验过,感兴趣的可以尝试一下。
分享标题:记录一次Win下的C++环境搭建(VSCode+MinGW+Clangd+xmake)
分享URL:http://myzitong.com/article/dsoijjj.html