拒绝切换IDE,10分钟让Trae编辑器化身C++神器,智能补全、编译调试一网打尽

大家好呀,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧、经验以及前沿资讯,有兴趣的可以关注我的公众号,一起学习,共同进步。

今天说一下我的老本行c++,怎么在trae中配置单纯的c++开发和编译环境呢,以windows系统为例。

1.下载和安装Mingw工具,用来编译c++代码

首先打开如下网站:winlibs.com/

该网站中有很多mingw的版本,自己选择一个即可:

我选择下载了最新的版本,也就是mingw12.0.0-r3的版本,下载下来是压缩包,7z格式或者zip格式的都有,我下载的是zip格式,解压以后里面是一个名为mingw64的目录,点击进去,内容如下:

点击bin目录进去,可以看到里面有g++.exe,gcc.exe,gdb.exe编译和调试程序都包含在内,包括还有mingw32-make.exe,这个是用于解释执行makefile文件的程序,然后我们把整个mingw64目录放到一个适当的路径,比如我这里放到D:\x86_64-gcc-14.2.0-mingw-12.0.0-r3目录下,那么整个mingw64的目录就是D:\x86_64-gcc-14.2.0-mingw-12.0.0-r3\mingw64

2.生成一段测试代码

接下来建立一个名为test-c++的空文件夹,然后打开trae,点击选择项目->打开文件夹,打开刚刚新建好的文件夹,如下:

这样就新建好了一个名为test-c++的新项目。

然后在trae的右侧,选择build模式,输入一个简单的描述,让trae帮我们生成一段简单的c++代码,如下:然后trae帮我生成一个main.cpp文件,内容如下:

c 复制代码
#include <iostream>
#include <string>

int main() {
    std::string name;
    std::string phone;

    // 提示并获取用户输入
    std::cout << "请输入姓名: ";
    std::getline(std::cin, name);

    std::cout << "请输入电话号码: ";
    std::getline(std::cin, phone);

    // 输出信息
    std::cout << "\n输入的信息如下:" << std::endl;
    std::cout << "姓名:" << name << std::endl;
    std::cout << "电话:" << phone << std::endl;

    return0;
}

3.trae自动生成编译和构建文件

接下来继续要求trae生成makefile文件、构建和调试的配置文件,在build模式下输入如下一段话:接下来我还想让你帮我做几件事: 1.生成一个简单的makefile文件,用于编译main.cpp 2.生成构建和调试的配置文件,使用mingw工具链进行构建和调试,mingw工具链路径如下:D:\x86_64-gcc-14.2.0-mingw-12.0.0-r3\mingw64\bin,因为我安装了多个不同版本的mingw,所以配置文件中麻烦你使用我指定的路径

然后trae就生成了如下的3个文件:

虽说生成了这些文件,但是trae不一定可以一次成功,中间有可能会报错,所以可能需要多次微调,多次处理才会成功。

下面是我可以正确编译并运行的makefile及构建调试配置文件,下面我贴出来代码,如下:

makefile 复制代码
# 编译器设置,因为我电脑安装了多个版本的mingw套件,所以必须要指定路径
CXX = D:/x86_64-gcc-14.2.0-mingw-12.0.0-r3/mingw64/bin/g++.exe

# 编译选项,windows中必须要链接静态库或者运行时指定动态库路径,因为我安装了多个不同版本的mingw,所以必须在这里指定静态库和路径
CXXFLAGS = -g -Wall -static-libstdc++ -fexec-charset=GBK
LDFLAGS = -LD:/x86_64-gcc-14.2.0-mingw-12.0.0-r3/mingw64/lib

# 目标文件
TARGET = out.exe

# 源文件
SRCS = main.cpp

# 默认目标
all: $(TARGET)

# 编译规则
$(TARGET): $(SRCS)
$(CXX)$(CXXFLAGS)$(LDFLAGS) -o $@$^

# 清理规则
clean:
 del $(TARGET)

注意看makefile里面的注释,里面的g++程序路径、静态链接库路径必须要正确。

接下来是.vscode/tasks.json,内容如下:

bash 复制代码
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "D:/x86_64-gcc-14.2.0-mingw-12.0.0-r3/mingw64/bin/mingw32-make.exe",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always",
                "panel": "new"
            },
            "problemMatcher": [
                "$gcc"
            ]
        },
        {
            "label": "clean",
            "type": "shell",
            "command": "D:/x86_64-gcc-14.2.0-mingw-12.0.0-r3/mingw64/bin/mingw32-make.exe",
            "args": ["clean"],
            "presentation": {
                "reveal": "always",
                "panel": "new"
            }
        }
    ]
}

tasks.json配置好了以后就可以构建了,构建方式如下:

  • 使用 ctrl+shift+B 触发构建或者ctrl + shift + p -->run task --> make 来触发构建
  • ctrl + shift + p -->run task --> clean 来触发清除的动作

接下来是调试文件.vscode/launch.json,内容如下:

bash 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/out.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/x86_64-gcc-14.2.0-mingw-12.0.0-r3/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"
        }
    ]
}

注意调试配置文件里面目标文件名称和gdb.exe的路径一定要配置正确

调试文件配置号以后,首先可以设置断点,如下:

然后按F5启动调试或者点击上图中左侧调试面板中的绿色按钮,进行调试。

  1. 调试时按键作用如下
    • F5:继续执行
    • F10:单步执行
    • F11:单步进入
    • Shift+F11:单步跳出
    • Shift+F5:停止调试
  2. 调试面板中窗口作用如下
    • 变量窗口:查看当前变量值
    • 调用堆栈:查看函数调用链
    • 断点窗口:管理所有断点

4.执行生成的程序

接下来我首先进行构建,使用快捷键ctrl+shift+B,然后可以看到下方终端中输出如下信息:

去查看项目目录,可以看到已经生成了目标程序out.exe,在trae的终端界面输入./out.exe执行,就可以看到已经得到了我们想要的结果,如下:

其实,说白了,这种配置方式跟之前发的QT的配置差不多,它的原理就是利用.vscode目录下的配置文件来执行不同的命令,本质上就是把命令行的方式自动化了。

说实话,我挺喜欢这种方式,我不用安装不同的IDE,也不用不时的切换IDE了。

还有一点就是,因为用的是g++编译器,对于习惯写linux下c++代码,又不想成天开个虚拟机的同学而言,是一种比较好的方式,我也是第一次知道可以这么干,以前要写个小程序测试一下c++的语法或者使用方式之类,还要跑到linux服务器上去,现在就简单多了。

相关推荐
孞㐑¥1 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
水木兰亭4 小时前
数据结构之——树及树的存储
数据结构·c++·学习·算法
CoderCodingNo5 小时前
【GESP】C++四级考试大纲知识点梳理, (7) 排序算法基本概念
开发语言·c++·排序算法
秋风&萧瑟6 小时前
【C++】C++中的友元函数和友元类
c++
梁诚斌7 小时前
使用OpenSSL接口读取pem编码格式文件中的证书
开发语言·c++
精灵vector8 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
莫大h10 小时前
Gemini-cli安装避坑指南
aigc·ai编程
星始流年11 小时前
前端视角下认识AI Agent
前端·agent·ai编程
2301_8035545211 小时前
c++中的绑定器
开发语言·c++·算法
海棠蚀omo11 小时前
C++笔记-位图和布隆过滤器
开发语言·c++·笔记