隨著國內外各類自動化編程助手的普及,作為傳統桌面C++開發者,也要及時地用上這樣強大的工具。考慮到網速問題,國外的服務時斷時續,還是傾向于使用一些國產的大語言模型助手。我們今天就來看看在VSCode下使用大語言模型輔助Qt開發。
1. 用好QtCreator + VSCode組合
VSCode成為AI助手最先支持的代碼編輯器,也是AI插件最豐富的編輯器之一。我以前用的很少,主要用QtCreator。最近用了一下,感覺有必要引入我的工具鏈條內,作為QtCreator/VS的助手來用。
1.1 VSCode 是最先一批支持流暢AI體驗的編輯器
之所以能做到最先一批,是因為他的 開源特性——在過去十年中一直是GitHub上最成功的開源項目之一。開源使得開發者能夠深入了解編輯器的內部機制,方便進行集成和定制。另一方面,和VS、QtCreator相比,它的 可擴展性 更聚焦:作為編輯器的定位,使得它比較聚焦于代碼的錄入(而不是連著GUI繪制都要管),這使得為它開發AI助手,比為復雜的IDE開發更清晰明了。最重要的,是它語言支持豐富。既然是代碼編輯器,主要是敲代碼的,那就不需要做編譯器、GUI繪圖工具等特性,自然支持的語言就多了(把工作流甩給插件和程序猿了)。正因如此,行業內逐漸形成了以VSCode為代表的AI用戶體驗。
1.2 VSCode 是很好的Qt項目輔助工具
VSCode寫Qt項目,和IDE提供的功能來說,還是有區別的,我覺得主要區別如下:
首先,集成程度稍差。 C++/Qt傳統集成開發環境是一個一體化的開發軟件服務套。例如Visual Studio、QtCreator等,內置了大量的UI自動化工具,用戶可以通過界面可視化設計菜單、工具欄,并動動鼠標就插入代碼。
上圖就是在Qt的原生IDE下,自動插入信號-槽的代碼。然而,和QtCreator不同,VSCode是一個輕量級的代碼編輯器,默認情況下只提供了基本的代碼編輯功能,如語法高亮、代碼自動完成等。如果要實現編譯、調試等功能,需要安裝相應的插件,且不是“開箱即用”,配置起來,新手還是要找尋一會兒。即使是Python編程,和 Anaconda 旗下幾款IDE相比,某些方面還是有點麻煩。 其次, 普適性與針對性區別顯著。IDE通常針對幾種特定的編譯語言為主,如Java C#、VB。它們針對特定語言進行了優化,除了基本的代碼編輯功能外,還包括編譯器、調試器、圖形用戶界面設計工具、版本控制系統集成等,能夠滿足軟件開發過程中的各種需求。VSCode具有較高的普適性,雖然通過插件可以實現很多功能,但在功能的完整性和深度上可能不如一些專業的IDE,且缺少專門的優化和整合。
總之,我們需要QtCreator作為創建、修改Qt項目的主用工具。由于QtCreator自帶的AI插件是商業許可,我們使用VSCode作為代碼編輯器和注釋生成器使用。這種情況下,可以最大程度發揮AI的能力。
2. 配置VSCode
2.1. 介紹沒有AI情況下筆者的開發環境
由于在使用 VSCode之前,已經安裝了很多Qt常用的前置環境,有必要和大家說一下。
- Manjaro Linux SSD作為主用開發環境。
- Windows MSYS2 mingw64、ucrt64、Clang32/64、mingw32環境全套 POSIX環境及Qt已經安裝,作為第二開發環境,用來驗證1的代碼跨平臺能力。
- Visual Studio 2022 C++/Qt 擴展模塊已經完全具備,用來為VS用戶發布開箱即用的源碼資源——MSYS2和VS有區別,為了讓使用代碼的朋友不會踩坑,也要在VS下編譯運行測試——做好人做到底。
- Qt Online Installer + MSVC 2022 Qt6.9。永遠追求最新的版本。如果很慢,請用命令行換源:
Installer/Maintainer.exe --mirror http://mirrors.ustc.edu.cn/qtproject/
- Git 2.35已經安裝。
當然,如果只是為了使用AI來給代碼加注釋等功能,或者去讀別人的代碼,則無需安裝Qt的上述環境。只需要配置好 VSCode 即可。然而,若是要能夠在VSCode下編譯、運行、調試 Qt 項目,則建議具備 3、4。
Linux下的Code開源版沒有這么麻煩,pacman 或者 apt 默認的Qt、cmake就行了。
2.2 安裝配置 VSCode
首先去官網下載安裝包,而后安裝、啟動。啟動后,直接轉到擴展一欄,搜索“Qt”,并安裝擴展. 注意,安裝VSCode擴展要安裝官方的,即作者是“QtGroup”. 這里,我選取All-in-one的 meta pack “Qt Extension Pack”,默認有四個選項會被安裝。
同時,確保CMakeTools安裝了微軟官方的版本:
最后,安裝一個免費的AI環境,這樣就不會在編碼時卡死。這里選取速度比較快的CodeGeeks(智譜清言)
2.3 重啟并登入AI賬號
這個AI需要拉起網頁用手機驗證碼登入。從略。登入后,隨便打開一個node.js的批處理文件,就能感受續寫了:
3. 輔助開發Qt CMake項目
作為一個通用性很強的編輯器,VSCode在易用性方面比起Qt的私房菜QtCreator還是要差一些。首次配置,需要點不少鼠標和按鈕。
3.1 確定Qt的位置
需要在擴展配置界面,“QtCore”選擇項里,指定Qt的文件夾。如果你的Qt默認傻瓜化安在C:\Qt,一般不需要這個步驟。否則,就需要手工指定了。
指定后,就會彈出“在某某文件夾找到N個Qt版本”的提示。
3.2 選擇構建工具鏈
完成3.1后,選擇“文件”-“打開文件夾”,選擇要打開的CMake Qt項目,停頓些許后,會彈出工具鏈選擇選項卡。如果沒有彈出,或者選錯了,則直接敲擊 :CMake Sel 即可找到入口重新選擇:
此時,請注意一定要選取正確的工具鏈,比如我選擇的是倒數第一個。
選擇后,CMake自動會運行,如果沒有錯誤,會輸出“done”:
如果出錯了,VSCode會進入CMake調試模式 ,大贊!雖然功能沒有C++調試這么多,但是比起純命令行反復嘗試,還是方便多了。
3.3 構建運行
點擊構建俺就直接編譯了:
到了運行環節,還要配置。首先,在運行調試界面,看到的是下圖:
點擊“Create a launch.json file”,會讓選擇調試器,我們要選擇 "CMake Debugger:
選擇后,會彈出CMake的配置,選擇“{}Qt:Debug with cppvsdbg (windows)”,以對應我們的VC2022 Qt6:
上述步驟配置完畢后,就可以調試了。
4. 關于qmake和CMake
可以看到,上述工作是基于CMake做的。VSCode下,對qmake支持的不咋地。如果要支持qmake,需要使用 Visual Studio。Qt選擇同時支持CMake和qmake這兩種構建系統,主要考慮的是大型項目的兼容性。
-
qmake作為Qt傳統的構建工具(自Qt 4時代起),需要保持對現有項目的兼容
-
近期版本中(如Qt 6),qmake雖然仍是可選方案,但已不再是默認推薦
-
CMake支持跨平臺構建的標準化(符合Kitware的CMake規范)
-
更完善的第三方庫集成(如通過find_package)
-
新開發者更熟悉CMake(已成為C++事實標準)
-
大型項目傾向CMake(如需要集成非Qt組件時)
這種雙軌制策略反映了Qt在技術創新和用戶習慣之間的平衡,預計未來版本中CMake將逐漸成為主導構建方案,而qmake會進入長期維護狀態。
我們在Visual Studio里,也可以安裝 CodeGeeX擴展,用于輔助開發 Qt qmake項目。需要注意的是,VS里的CodeGeeX的代碼介入度沒有 VSCode高,很多時候是獨立輸出到自己的對話框,需要^V過來。因為這個原因,我們還是推薦 VSCode。