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

(二)Trae 配置C++ 编译

Trae配置c++编译

  • 零 CMake 编译C++
    • 0.1 下载安装
    • 0.2 安装设置
    • 0.3 三种编译方式(见 下文 一 二 三)
    • 0.4 调试 (见 下文四)
  • 一 使用MSVC方式编译
    • 1.1 安装编译环境
    • 1.2安装插件
    • 1.3 设置文件
  • 二 使用GCC方式
    • 2.1 安装编译环境
      • 2.1.1下载:[MinGw](https://gcc-mcf.lhmouse.com/)
      • 2.1.2安装:(以ucrt为例)
    • 2.2安装插件
    • 2.3 配置文件
  • 三 使用Clang方式
    • 3.1安装LLVM
    • 3.2插件
    • 3.3 配置文件
  • 四 开始编译和调试
    • 4.1 项目新增CMakeLists.txt文件
    • 4.2 CMakeTool插件开始编译
      • 1. CMakeTool插件
      • 2. 选择编译器,生成构建文件()
      • 3. 生成exe:
      • 4. 调试

零 CMake 编译C++

0.1 下载安装

本文章使用Trae编译C++需要先安装CMake
下载 CMake地址

0.2 安装设置

  1. 设置 环境变量:Path
    开始->设置->系统->高级系统设置->“环境变量” ->Path增加如下路径
    在这里插入图片描述
  2. 测试安装
 c:\>cmake --versioncmake version 3.31.7

0.3 三种编译方式(见 下文 一 二 三)

  1. 使用MSVC方式编译
  2. 使用GCC方式
  3. 使用LLVM(Clang)方式编译

0.4 调试 (见 下文四)


一 使用MSVC方式编译

1.1 安装编译环境

下载地址 vs_installer
使用vs_installer 中的 C++编译选项

在这里插入图片描述
安装完成后在开始菜单,在搜索框键入dev后出现提示如下.

版本
vs2019在这里插入图片描述
vs2022在这里插入图片描述

1.2安装插件

  1. C/C++ (微软官方)(当前已经不能使用)
  2. CMake (twxs)
  3. CMake Tools(ms-vscode)

1.3 设置文件

暂时未能调试,所以暂缺


二 使用GCC方式

2.1 安装编译环境

2.1.1下载:MinGw

1.ucrt 是比较新的
2.msvcrt是兼容老版本

2.1.2安装:(以ucrt为例)

1.解压缩到D盘(笔者解压路径为 d:\Code\CodeTool\ucrt64)
在这里插入图片描述
2.设置环境变量

1新增变量 MinGW_HOME
在这里插入图片描述
2.系统变量Path增加如下内容
在这里插入图片描述
开始->设置->系统->高级系统设置->“环境变量”->Path

2.2安装插件

  1. CMake (twxs)
  2. CMake Tools(ms-vscode)
  3. C/C++ Debug(KylinIdeTeam)

2.3 配置文件

  1. launch.json 调试设置
    .vscode目录下添加launch.json文件如下
    下面的cpp3需要手动改为自己的exe名称
{"version": "0.2.0","configurations": [{"name": "Debug with GDB","type": "cppdbg","request": "launch","program": "${workspaceFolder}/bin/cpp3.exe","args": [],"cwd": "${workspaceFolder}","MIMode": "gdb",}]
}

2.settings.json
.vscode目录下添加settings.json

{"files.associations": {"xlocmes": "cpp","istream": "cpp","ostream": "cpp","xiosbase": "cpp","xutility": "cpp"}
}

三 使用Clang方式

3.1安装LLVM

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

3.2插件

  1. CMake (twxs)
  2. CMake Tools(ms-vscode)
  3. Clangd(llvm-ms-code)
  4. Codelldb(vadimcn)

3.3 配置文件

  1. launch.json 调试设置
    .vscode目录下添加launch.json文件如下
    下面的cpp3需要手动改为自己的exe名称
{"version": "0.2.0","configurations": [{"name": "Debug with LLDB","type": "lldb","request": "launch","program": "${workspaceFolder}/bin/cpp3.exe","args": [],"cwd": "${workspaceFolder}"} ]
}

2.settings.json
.vscode目录下添加settings.json

{"files.associations": {"xlocmes": "cpp","istream": "cpp","ostream": "cpp","xiosbase": "cpp","xutility": "cpp"}
}

四 开始编译和调试

4.1 项目新增CMakeLists.txt文件

项目名称 cpp3
c++版本 c++17

# CMake 最低版本要求
cmake_minimum_required(VERSION 3.10)# 项目名称
project(cpp3)# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 添加可执行文件
add_executable(${PROJECT_NAME} main.cpp)# 设置输出目录
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)# 添加头文件搜索路径
include_directories(${PROJECT_SOURCE_DIR}/include)# 添加库文件搜索路径
link_directories(${PROJECT_SOURCE_DIR}/lib)

4.2 CMakeTool插件开始编译

1. CMakeTool插件

①打开CMakeTool插件:
②选择编译器 见图2
③ 编译选项 Debug Release等
图1.CMakeTool页面

2. 选择编译器,生成构建文件()

a. 首次可以使用扫描本机编译器
④ 扫描本机的编译器:
b. 下面可以切换编译器,生成构建文件
⑤Clang++ 编译器 (生成build.ninja)
⑥vs2019(vs:sln+vcproj )
⑦vs2022(vs:sln+vcproj )
GCC 15.0.1(Makefile)
选择编译器后会生成构建文件 1.LLVM:build.ninja /2.vs:sln+vcproj / 3.MinGw:Makefile 等构建文件
在这里插入图片描述

3. 生成exe:

状态栏下点击"生成",会根据构建文件(sln/build.ninja/makefile)去生成exe
在这里插入图片描述

4. 调试

a.增加main.cpp上断点
b.⑧点击调试页面
c.选择调试器
⑨LLDB调试 (对应launch.json的"Debug with LLDB",使用build.ninja编译exe)
⑩g++编译(对应Launch.json的"Debug whit GDB",使用makefile编译的exe)
d.再点击那个调试按钮(小虫子)
在这里插入图片描述
5.清理
每次更换编译器,可以先执行清理缓存(见下图) ,再执行 3.生成 4.调试
在这里插入图片描述

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

相关文章:

  • 2024年网站开发语言选择指南:PHP/Java/Node.js/Python如何选型?
  • 240419 leetcode exercises
  • React 文章列表
  • JVM基础认知:JVM到底是什么?为什么它如此重要?
  • 神经网络的数学之旅:从输入到反向传播
  • 进程控制(下)【Linux操作系统】
  • stm32| 中断标志位和中断挂起位 | TIM_ClearFlag 函数和TIM_ClearITPendingBit 函数
  • .net core web api 数据验证(DataAnnotations)
  • Java集合框架中的List、Map、Set详解
  • 焕活身心,解锁健康养生新方式
  • C#学习第17天:序列化和反序列化
  • 基于Redis的3种分布式ID生成策略
  • 多线程——阻塞队列(六)
  • LeetCode(Hot.2)—— 49.字符异位词分组题解
  • ARINC818-实现
  • ueditorplus编辑器已增加AI智能
  • UI键盘操作
  • 计算机网络期中复习笔记(自用)
  • 【技术派后端篇】 Redis 实现用户活跃度排行榜
  • 【UniApp】Vue2 scss 预编译器默认已由 node-sass 更换为 dart-sass
  • 如何优雅地为 Axios 配置失败重试与最大尝试次数
  • PG,TRPO,PPO,GRPO,DPO原理梳理
  • Windows桌面图标变白的解决方案
  • 不连续数据区间天数累计sql
  • Python制作简易PDF查看工具PDFViewerV1.0显示优化
  • HTML5+CSS3小实例:CSS立方体
  • 【Lua语言】Lua语言快速入门
  • redis和lua为什么能实现事务
  • 在STM32的定时器外设中,选择使用哪个外部时钟配置函数
  • 猫咪如厕检测与分类识别系统系列【十二】猫咪进出事件逻辑及日志优化