当前位置: 首页 > java >正文

(四) 实战Trae 编译调试C++项目(以minidocx为例)

Trae编译调试C++

  • 一 项目minidocx
    • 1.1 下载
    • 1.2 项目介绍
    • 1.3 解压/clone到本地
  • 二 安装程序
    • 2.1 Trae-CN or Trae
    • 2.2CMake 安装
    • 2.3 安装vs2022msvc工具链
    • 2.4 安装LLVM
    • 2.5 安装Trae插件
      • 1.所需插件
      • 2.安装插件
  • 三 编译
    • 3.1 新添编译配置 my-clang-cl
      • 1) 配置
      • 2)新添预设
      • 3)从编译器创建
      • 4) 选择编译器 Clang-cl 20.1.1
      • 5)输入配置名my-clang-cl
      • 6) 观察变化
    • 3.2 生成
      • 1) 点击"删除缓存并重新配置"
      • 2) 点击生成(在下面状态栏)
      • 3)观察生成结果
      • 4)查看生成的代码
  • 四 调试
    • 4.1 选择调试器 和 调试exe
    • 4.2增加断点:
    • 4.3 开始调试

本文章主要记录使用Trae + CMake + LLVM + msvc 配合一起,编译minidocx项目,并调试.
使用工具链包括 LLVM MSVC.
注意:CMake 和 编译相关不熟悉的可以参考本专题其他文章
Trae编译C++专题

一 项目minidocx

1.1 下载

地址:github/minidocx or gitee/mindocx
这是一个使用c++ 20 的项目

1.2 项目介绍

根据项目介绍,这是一个c++ 生成word docx文件的程序.
该项目最终会生成5个exe作为例子

  • list.exe
  • myapp.exe
  • pict.exe
  • style.exe
  • table.exe

1.3 解压/clone到本地

D:\Code\CodeTest\minidocx-next
(实际上是使用的该项目的next分支)

二 安装程序

2.1 Trae-CN or Trae

下载:Trae国际版
下载:Trae国内版
二选一下载安装即可

2.2CMake 安装

下载 CMake地址
安装后要设置环境变量Path
开始->设置->系统->高级系统设置->“环境变量” ->“Path”.增加如下路径

D:\Program File\CMake\bin

(说明:笔者将CMake安装到了D:\Program File\CMake)

2.3 安装vs2022msvc工具链

下载:visualstudio
选择安装:
在这里插入图片描述
msvc工具链是自动设置path等路径.不需要手动修改

2.4 安装LLVM

下载 LLVM
(笔者安装的路径为D:\Code\CodeTool\LLVM)
开始->设置->系统->高级系统设置->“环境变量” ->Path.增加如下路径
在这里插入图片描述

2.5 安装Trae插件

1.所需插件

  1. Extension Pack for C/C++(KylinIdeTeam) 已经包含:
    1.1 kylin Clangd
    1.2 C/C++ Debug(gdb) – 因为这个,所以下载较慢
    1.3 CMake Intelli
    1.4 CMake Tool(fork)
    1.5 Kylin Native Debug
  2. CodeLLDB (vadimcn)

2.安装插件

在搜索窗口搜索插件 1.Extension Pack for C/C++ 2. CodeLLDB 进行安装
在这里插入图片描述

三 编译

3.1 新添编译配置 my-clang-cl

1) 配置

在这里插入图片描述

2)新添预设

点击修改箭头会弹出下图.点击:添加新预设
在这里插入图片描述

3)从编译器创建

选择最下面的"从编译器创建"
在这里插入图片描述

4) 选择编译器 Clang-cl 20.1.1

在这里插入图片描述

5)输入配置名my-clang-cl

‘这个配置名影响以后输出代码的目录位置’
在这里插入图片描述

6) 观察变化

  1. CMakeTool插件 在配置行出现:my-clang-cl
    在这里插入图片描述
    2.CMakePresets.json文件中新增下列内容:
    另外,别忘记补上一句
 "generator":"Ninja"

在这里插入图片描述
如果不补上这句,自动就去生成msvc的sln和vcproj
另外:如果其他项目中自带的CMakePresets.json文件项目比较多,而且不是你需要,你可以删除其中的所有内容,再按照上述操作(如果项目没有此文件,可以新建空的CMakePresets.json文件)

3.2 生成

1) 点击"删除缓存并重新配置"

点击下图 ①
在这里插入图片描述

2) 点击生成(在下面状态栏)

点击下图 ② 生成
在这里插入图片描述

3)观察生成结果

中间虽然有warning ,不过还是全部都生成了
在这里插入图片描述

4)查看生成的代码

在CMakePresets.json中有如下句子,表明了CMake创建的项目在如下位置

  "binaryDir": "${sourceDir}/out/build/${presetName}",

所以在左侧代码窗口可以看见
在①处打开资源管理器
在②处可以看到解决方案都放到了/out/build/{配置名}目录下
在③处可以看到是使用clang-cl方式整理的解决方案
在④处可以看到是使用msvc方式整理出的解决方案(使用msvc工具链时产生,本文章未涉及)
在这里插入图片描述

四 调试

4.1 选择调试器 和 调试exe

在下图①位置,选择调试器lldb (之前我们选择的是clang-cl编译的)
在下图②位置,选择调试的list.exe
在这里插入图片描述

4.2增加断点:

在项目的 examples\list.cpp文件中增加断点
下图选中①list.cpp
在第11行增加断点,见下图②

在这里插入图片描述

4.3 开始调试

点击状态栏①右侧的小bug,之后可以进入断点

在这里插入图片描述

http://www.xdnf.cn/news/2251.html

相关文章:

  • Winform(2.多线程)
  • C19-while循环及for循环等价引入
  • CANFD技术在实时运动控制系统中的应用:协议解析、性能测试与未来发展趋势
  • (23)VTK C++开发示例 --- 读取所有的PolyData类型示例
  • 网络管理知识点
  • Java----内部类 以及 调用关系
  • Pygame终极项目:从零开发一个完整2D游戏
  • C++之map
  • ngrok 内网穿透技术系统性文档
  • 初始网络流(最小割)
  • 【C语言练习】005. 编写表达式并确定其值
  • leetcode刷题日记——环形链表
  • 新增Webhook通知功能,文档目录树展示性能优化,zyplayer-doc 2.5.1 发布啦!
  • Linux基础篇、第4章_03系统磁盘高级管理LVM 逻辑卷管理器
  • 【头脑风暴】加权平均
  • 模型 递弱代偿
  • [计算机科学#2]:从继电器到晶体管的电子计算机发展史(庞然大物的进化)
  • 视觉大模型专栏导航
  • C++泛型编程(一):模板详解
  • 可视化大屏开发前提了解
  • ssm驾校预约管理系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • dl学习笔记(13):从强化学习到PPO
  • cf | Median Splits
  • Dubbo(78)Dubbo的集群容错机制是如何实现的?
  • Ollama平替!LM Studio本地大模型调用实战
  • 509. 斐波那契数
  • 集合及相关
  • 什么是 Swagger 以及如何在 Spring Boot 中实现 Swagger:配置与实践指南
  • 【黑马JavaWeb+AI知识梳理】前端Web基础01 - HTML+CSS
  • 【leetcode100】单词拆分