随着国内外各类自动化编程助手的普及,作为传统桌面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。