這套環(huán)境是VSCode+MinGW(MSYS2)+Clangd+Xmake的配置。
創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為汾陽等服務(wù)建站,汾陽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為汾陽企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
網(wǎng)上很多教程引導(dǎo)去的MinGW-w64 gcc版本只更新到了8.1.0就停更了,而實(shí)際中g(shù)cc版本已經(jīng)到達(dá)12了,因此我們使用MSYS2去安裝GCC。
首先使用scoop安裝msys2(在main bucket中就有):
scoop install msys2
終端中輸入msys2
進(jìn)入環(huán)境,下載minGW:
pacman -S mingw-w64-x86_64-toolchain
下面會(huì)提示選擇哪些工具,如果不是硬盤空間實(shí)在有限的話,直接回車默認(rèn)安裝全部即可。
隨后找到minGW的bin目錄(這里推薦一手Listary,直接搜索g++.exe
打開文件目錄即可,非常方便),添加環(huán)境變量,此時(shí)GCC編譯器就算是安裝成功了。
這個(gè)是花費(fèi)了我最多精力的地方,有一說一,clangd在代碼提示補(bǔ)全上確實(shí)吊打vscode自帶的C/C++擴(kuò)展,但是在Windows上的配置費(fèi)了一番功夫
在vscode擴(kuò)展商店中搜索clangd下載,完成后右下角會(huì)彈窗提醒你安裝clangd server,點(diǎn)擊Install即可直接安裝,這一點(diǎn)非常便捷,clangd默認(rèn)直接綁定了VS路徑下的MSVC庫,如果需要修改為MinGW則要改動(dòng)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"
]
}
逐一解釋:
學(xué)習(xí)C++ Primer這本書的需要注意一下,雖然全書是按照C++11標(biāo)準(zhǔn)寫的,但是這里如果設(shè)置成C++11,clangd會(huì)書中的附帶代碼報(bào)錯(cuò)(比如Sales_item.h)。
這是前段時(shí)間發(fā)現(xiàn)的一個(gè)新的構(gòu)建工具(也不算新了,好像已經(jīng)release兩年了),用的是lua腳本,在我學(xué)習(xí)C++Primer的過程中感覺比cmake更加簡潔易懂,用它管理我寫的習(xí)題集非常輕松。貼一段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也提供了官方插件快速操作(不過我覺得命令行已經(jīng)夠傻白甜了),推薦大家使用。
同時(shí)它也可以根據(jù)lua腳本直接生成CmakeList文件(也就是向下兼容Cmake),這個(gè)功能我沒有深入體驗(yàn)過,感興趣的可以嘗試一下。