QT6 CMake項目配置 (VSCode)
QT6 CMake項目配置 (VSCode)
這篇文章我們介紹一下在VSCode下的配置,大體上和Visual Studio上差不多,建議先把之前介紹在VS上的配置過程看一遍,
VSCode安裝
這個就不用說了吧,無腦下一步

插件安裝
先把CMake相關的插件裝一下
第一個是CMake語言的支持插件,裝了這個寫CMakeLists.txt就有語法提示和高亮了。
Name: CMake
Id: twxs.cmake
Description: CMake langage support for Visual Studio Code
Version: 0.0.17
Publisher: twxs
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=twxs.cmake
第二個是CMake插件,就是讓VSCode支持打開和管理CMake項目用的
Name: CMake Tools
Id: ms-vscode.cmake-tools
Description: Extended CMake support in Visual Studio Code
Version: 1.18.42
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools
像是等下會在左下角出現的編譯、調試、測試按鍵,自動Config,側邊欄的CMake相關設置等等,都是這個插件提供的

接下來安裝C/C++相關的插件
第一個是C/C++語言支持插件,也就是LSP,就是提供一些語法提示,debug支持等功能的
Name: C/C++
Id: ms-vscode.cpptools
Description: C/C++ IntelliSense, debugging, and code browsing.
Version: 1.20.5
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
第二個具體功能忘了,不裝有些關鍵功能會用不了,直接裝就行了
Name: C/C++ Extension Pack
Id: ms-vscode.cpptools-extension-pack
Description: Popular extensions for C++ development in Visual Studio Code.
Version: 1.3.0
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack
有些人喜歡用clangd,我個人不太喜歡,這邊就用微軟官方的C/C++插件了,如果你自己有需求的再去設置就好了。

安裝好后,應該有這五個插件
其實有一個是捆綁自動安裝的,無所謂,不用理它。

復制測試項目
好了,現在可以把測試項目復制過來了
不要把之前VS那個配置好的項目復制過來,后面會講原因,直接去下載地址重新下一份放過來。
嘗試打開項目

點擊Open Folder,選擇項目的文件夾
注意,一定要選擇頂層CMakeLists.txt所在的文件夾,而不是上一級或下一級,這樣CMake插件識別都有可能會有問題。

如果有安全警告,直接打勾,確認就行了



當然這里你隨便選,只要是MSVC的編譯器,都是不能編譯的,即使是個hello world也編譯不過去。
正確的打開方式
好了,先把剛剛的VSCode窗口關了吧。
再次打開上次我們編譯的時候使用的x64 Native Tools Command Prompt for VS 2022
之前應該解釋過了,這個其實就一個bat腳本,執行之前會配置很多和MSVC相關的環境變量

從這個cmd窗口啟動vscode就可以把這些環境變量繼承過來,這樣就可以正常使用MSVC編譯器了,其實也還有種方法可以達到差不多的目的,但最好就是用那種方法來做,這邊就不說了。(因為我踩過坑)
先加一個qt庫到臨時的path環境變量(VS配置那篇文章說了)
然后cd到項目的目錄,然后code .來用vscode打開當前文件夾
code其實就是vscode,點就是表示當前目錄

然后在vscode里找到CMakeLists.txt按一下CTRL+S會自動開始Config
一般提示Generating done就沒什么問題了

現在開始編譯
默認應該是編譯的x64 Debug,所以沒必要選,如果不是,記得去側邊欄那個CMake圖標里改一下,因為我們打開的是x64 Native的環境,不要去編譯x32的東西。

可以發現正常運行了

可以發現,步驟和VS沒什么差別,就是要從x64 Native Tools Command Prompt for VS 2022啟動,來繼承一些MSVC的編譯環境
接下來就是最后一個問題了,那就運行時的鏈接,現在是動態鏈接的運行時
之前VS我們是寫在CMakePresets.json里面的,其實這里也可以用
直接把CMakePresets.json復制過來,
把build目錄刪一下(因為CMakePresets.json里把generator默認改成了Ninja)
然后重新打開VSCode就好了
現在就和VS一樣了,可以選x64 Release Static Runtime了

不過,現在你會發現,它不讓你選編譯器了,只能選在json里寫的配置了,說實話我也沒搞懂為什么這樣設計,可能是它覺得,既然你都自己寫Config了那就干脆都你自己搞好了(
CMakePresets.json本身就是CMake支持的,所以這里也可以使用,里面的內容其實不復雜,可以自己去看看,本質上來說就是把一堆CMake的set操作,寫到了這個json里,不同的配置方案可以繼承,可以寫很多種配置方案,好處就是可以隨便切換,不用在CMake里寫if或-D參數,算是邁進了半現代化吧(,目前這個VS自動生成的,默認把編譯器設置成了cl,也就是MSVC,要支持其它的編譯器也不難,就是改那個cacheVariables就好了,改了后只要環境變量有對應的編譯器工具鏈,CMake會自動配置,理想的情況,你可以為不同平臺寫不同的配置而不需要去改動CMakeLists.txt或很少改動,反正這東西還是挺好的,有興趣可以自己再去了解一下、

浙公網安備 33010602011771號