Trae+Qt+MSVC环境配置

news/2025/2/23 16:20:35

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.niftyadmin.cn/n/5863577.html

相关文章

pycharm中配置PyQt6详细教程

PyQt6 是 Qt 框架的 Python 绑定库,基于 Qt 6 开发,专为创建跨平台图形用户界面(GUI)应用程序设计。 本章教程,主要记录在pycharm中配置使用PyQt6的流程。 一、安装基础环境 在此之前,你需要提前安装好Python解释器,推荐使用anaconda创建虚拟环境。 conda create -n pyt…

从零开始开发纯血鸿蒙应用之网页浏览

从零开始开发纯血鸿蒙应用 〇、前言一、优化菜单交互1、BuilderFunction.ets2、改造 PageTitleBar 二、网址打开1、方式选择1、使用浏览器打开2、内部打开2.1、声明权限2.2、封装 WebViewPage2.2.1、组件字段2.2.2、aboutToAppear2.2.3、onBackPress2.2.4、标题栏2.2.4、网页内…

IWPA_CEC2005

3种策略改进WPA狼群算法,独家原创,效果非常好,可以直接拿来写毕设或者论文 算法设计、毕业设计、期刊专利!感兴趣可以联系我。 🏆代码获取方式1: 私信博主 🏆代码获取方式2 利用同等价值的matl…

http 协议和 https 协议的区别是什么?

互联网各领域资料分享专区(不定期更新): Sheet 正文 HTTP(超文本传输协议)和 HTTPS(安全超文本传输协议)的核心区别在于安全性,以下是两者的主要对比: 1. 协议与安全性 HTTP:数据以明文形式传输,易被窃听、篡改或中间人攻击。HTTPS:通过 SSL/TLS 协议对数据进行加密…

静态时序分析:时钟组间的逻辑独立、物理独立和异步的区别

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 当设计中存在多个时钟(同步或异步)时,该如何使用SDC命令约束设计呢?本文就将对此进行讨论。 逻辑独立 例1 多个时钟完全逻辑独立 图1 逻辑…

ubuntu 源码编译ffmpeg

文章大概就是源码编译 ffmpeg,支持H265 264 编码和gdb 调试 下载ffmpeg 源码 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载依赖库 sudo apt-get install libx264-dev libx265-dev编译选项 ./configure --enable-gpl --enable-libx264 --enable-…

【推荐项目】009-学校宿舍管理系统

系统角色与功能优化整理如下: 系统角色: 学生 宿舍管理员 系统管理员 系统功能: 首页:提供系统概览及快速导航。 用户管理:对用户信息进行增删改查等操作(系统管理员专有)。 宿舍管理&#x…

Qt中QRadioButton的使用

QRadioButton 是 Qt 框架中的一个控件,用于创建单选按钮。单选按钮通常用于让用户从一组互斥的选项中选择一个选项。以下是如何在 C 中使用 QRadioButton 的基本示例。 1. 包含必要的头文件 首先,确保包含 QRadioButton 和其他必要的 Qt 头文件。 #inc…