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

您好,我是程序员夏叶,国内某金融中厂c++程序员,之前写了一些c++方面的知识,最近比较迷恋AI编程,所以分享了不少AI编程方面的经验,有兴趣的可以关注我的公众号,一起学习,共同进步。

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

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

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

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

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

点击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,点击选择项目->打开文件夹,打开刚刚新建好的文件夹,如下:picture.image

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

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

  
#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个文件:picture.image

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

下面是我可以正确编译并运行的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,内容如下:

  
{  
    "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,内容如下:

  
{  
    "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的路径一定要配置正确

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

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

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

4.执行生成的程序

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

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

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

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

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

有关trae的一些其他使用技巧,可查看我的往期文章,如下:

Trae 用户交流:分享几个让 AI 写代码既顺手也顺眼的小技巧

别再用默认主题了!Trae官方插件市场开放,可以实现主题自由了

无需qt-creator,使用Trae从0到1生成qt的开发、构建、调试环境

Trae编辑器插件目录自定义,释放c盘空间

别再手动搬运插件了!用VSPlugin Helper一键穿透SSH,让Trae远程开发秒接VSCode生态

0
0
0
0
评论
未登录
暂无评论