Trae+Qt+MSVC环境配置

news/2025/2/23 6:04:34/

Trae

Trae是字节跳动基于VSCode推出的AI集成开发环境(IDE),是一款专为中文开发者深度定制的智能编程工具。其目标是通过AI技术实现从“Copilot”到“Autopilot”的编程模式演进。

类似这样的IDE比如Windsurf、Cursor,都是基于VSCode的,风格都一样。

背景

OK,既然是基于VSCode,那其实用法跟VSCode都差不多的。本文是记录在Trae中搭建Qt开发环境,作为QtCreator的重度依赖者,为了体验AI变成带来的高效,尝试从QtCreator转换到Trae,需要有一个适应过程,QtCreator作为Qt官方推出的IDE,自然是最能适配Qt项目开发的,环境配置也很简单,安装Qt的时候一套流程全都配好了。

这里主要是针对从QtCreator用户过来的宝子,前提是已经有Qt开发环境,如何在Trae(VSCode、Windsurf、Cursor都适用)中配置编译任务,以及设置一些在QtCreator中常见的配置和用法。

环境

测试是使用的版本是:Qt5.15.2,qmake+msvc2019编译。

正文

首先,打开Trae,要支持Qt工程及相关语法,需要安装相应的插件,直接在插件市场搜索qt和qml,安装一些基础插件就行了,我安装了这些:
在这里插入图片描述

然后还有C/C++的插件,如果要用到CMake编译的话,一起安装,我安装了这些:
在这里插入图片描述
然后导入一个现有的Qt项目,或者新建一个Qt工程。

Qt环境变量:
在这里插入图片描述
MSVC编译器环境变量:
在这里插入图片描述
正常来说,使用MSVC编译器,应该是对应使用nmake命令进行编译,但是由于nmake是单线程编译,速度比较慢,而QtCreator里面默认是配置用jom编译,jom支持多线程编译,速度很快,并且完全兼容nmake编译,所以上面添加Qt环境变量中,添加了QtCreator目录下的jom目录,就是为了能够使用jom进行编译。

而MSVC的环境变量,其实编译的时候直接运行一次VS安装目录下的这个脚本就行了 ,会自动配置相关的编译环境。
在这里插入图片描述
如果是x86就执行vcvars32.bat,x64就执行vcvars64.bat脚本。
所以前面的环境变量我们添加了C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build目录,就是为了方便快捷调用这两个脚本。

OK,接下来在Trae中设置编译任务。

快捷键:Ctrl+Shift+p
然后选择配置任务,开始编辑task.json文件:
在这里插入图片描述
我这边测试写的task.json 文件如下:

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "qmake","type": "shell","command": "qmake","args": ["${workspaceFolder}/QtProject.pro","CONFIG+=release"],"group": {"kind": "build","isDefault": true}},{"label": "qmake-debug","type": "shell","command": "qmake","args": ["${workspaceFolder}/QtProject.pro","CONFIG+=debug"],"group": {"kind": "build","isDefault": true}},{"label": "build","type": "shell","command": "cmd","args": ["/c","\"call vcvars64.bat && jom\""],"group": {"kind": "build","isDefault": true},"dependsOn": ["qmake"]},{"label": "build-debug","type": "shell","command": "cmd","args": ["/c","\"call vcvars64.bat && jom\""],"group": {"kind": "build","isDefault": true},"dependsOn": ["qmake-debug"]},{"label": "clean","type": "shell","options": {"cwd": "${workspaceFolder}/"},"command": "jom","args": ["clean"],"group": {"kind": "build","isDefault": true}},{"label": "Run-Release","type": "process","options": {"cwd": "${workspaceFolder}/bin"},"command": "QtProject.exe","dependsOn": ["build"],"group": {"kind": "build","isDefault": true}}]
}

内容其实很简单,就是配置每一项需要执行的任务,自定义相关标签,标明是要做什么任务的,然后指定任务的执行命令即可。

我这里配置了 release模式的 qmake,build,Run,debug模式的qmake,build。还有clean,clean也是直接通过jom来调用。

重点看build:

{"label": "build","type": "shell","command": "cmd","args": ["/c","\"call vcvars64.bat && jom\""],"group": {"kind": "build","isDefault": true},"dependsOn": ["qmake"]
},

这里是执行shell命令,调用vcvars64.bat 以及 jom编译,使用了&&符号连接两个命令先后执行。
需要注意的是,执行命令的终端默认使用的是PowerShell,直接执行这个任务会报错,因为PowerShell中不支持&&符号连接两个命令。所以我们需要切换到cmd再执行,很简单,设置一下默认终端即可:
在底部窗口工具栏上点击下拉,选择默认配置文件:
在这里插入图片描述
然后会弹出然你选择默认,这时候点击Command Prompt即可。
在这里插入图片描述
这样我们的终端就默认变成cmd了,再执行以上task任务的时候就会默认使用cmd。

配置好task后执行命令,快捷键 Ctrl+Shift+B,选择要运行生成的任务即可:
在这里插入图片描述
以上配置已完成。
but~

快捷键

习惯了Qtcreator中直接快捷键Ctrl+R就能编译运行程序,但是在这里要点击几个步骤才能执行任务,其实我们可以直接将任务自定义快捷键的,这样就能够快速的执行了任务了。

在文件菜单打开键盘快捷键
在这里插入图片描述
然后点击标题栏右边这个图标
在这里插入图片描述
添加json字段:

    {"key": "ctrl+r", // 运行"command": "workbench.action.tasks.runTask","args": "Run-Release" // 任务的 label 名称},{"key": "ctrl+b", // 编译"command": "workbench.action.tasks.runTask","args": "build" // 任务的 label 名称},

这里指定快捷键以及要运行的task中的label标签名称即可。这样就可以通过快捷键快速运行啦。


http://www.ppmy.cn/news/1574360.html

相关文章

鸟语林-论坛系统-测试报告

目录 一、项目背景 二、项目功能 三、测试计划 3.1 功能测试 3.1.1 注册功能 3.1.2 用户登录 3.1.3 板块列表 3.1.4 同一板块下不同贴子简要内容展示 3.1.5 帖子详情展示 3.1.6 发布帖子 3.1.7 点赞 3.1.8 贴子回复功能 3.1.9 站内私信 3.1.10 个人信息修改 3.1…

SOME/IP--协议英文原文讲解12(完结)

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.3 Compa…

Orcale、MySQL中参数类型的详解和运用场景(不带示例)

以下分别将 Oracle 和 MySQL 常见的数据类型以表格形式呈现,包含类型、大小、详解及运用场景。 Oracle 数据类型 类别数据类型大小详解运用场景数值类型NUMBER(p, s)最大可存储 38 位精度。存储大小取决于 p 和 s,最多 22 字节p 表示精度(数…

【YOLO11改进trick】Pinwheel-shaped Conv风车状卷积引入YOLO11,含创新点代码,方便发论文

目录 🍋🍋1.即插即用的 PConv风车状卷积 🍇1.1风车状卷积结构 🍇1.2PConv的参数量 🍭🍭2.PConv适用场景 🍉🍉3.风车状卷积PConv的优点 🏆3.1. 高效的感受野扩展 🏆3.2. 即插即用的模块化设计 🏆3.3. 卓越的准确性和鲁棒性 🏆3.4. 强大的泛化能…

37、深度学习-自学之路-自己搭建深度学习框架-2、自动梯度计算

import numpy as npclass Tensor(object):import numpy as np:导入 numpy 库,用于处理数组相关操作。class Tensor(object):定义了一个名为 Tensor 的类,继承自 object。__init__ 方法是类的构造函数,用于初始化 Tenso…

哈希表(C语言版)

文章目录 哈希表原理实现(无自动扩容功能)代码运行结果 分析应用 哈希表 如何统计一段文本中,小写字母出现的次数? 显然,我们可以用数组 int table[26] 来存储每个小写字母出现的次数,而且这样处理,效率奇高。假如我们想知道字…

遗传算法(GA)是一种基于自然选择和遗传学原理的搜索和优化技术,可以用于调整条件生成对抗网络(cGAN)的参数。

遗传算法(GA)是一种基于自然选择和遗传学原理的搜索和优化技术,可以用于调整条件生成对抗网络(cGAN)的参数。以下是使用遗传算法为cGAN调参的步骤: 1. 定义适应度函数 适应度函数是遗传算法的核心&#x…

MySQL登录问题总结

不管何种数据库,使用的第一步都是先登录。 MySQL命令行登录语句:mysql -u username -P port -p -D database_name 登录MySQL的报错一般从报错信息都能得到反馈,常见报错原因分析如下,实例中的以test用户为例,登录环境为…