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

(二)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.调试
在这里插入图片描述

相关文章:

(二)Trae 配置C++ 编译

Trae配置c编译 零 CMake 编译C0.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安装:(以…...

Doris 本地部署集群重启后报错

报错描述 Docker 版本: apache/doris:fe-2.1.9 apache/doris:be-2.1.9 连接 MySQL 报错: ERROR 2003 (HY000): Cant connect to MySQL server on 127.0.0.1:9030 (111)FE 日志: INFO (UNKNOWN fe_e7cff187_69d4_42ee_90be_147e87310549(-1…...

日本公司如何实现B2B商城订货系统的自动化和个性化?

在日本构建具备前后台日文本地化、业务员代客下单、一客一价、智能拆单发货的B2B电商系统,需结合日本商业习惯与技术实现。以下是关键模块的落地方案: 一、系统架构设计 1. 前端本地化 语言与UI适配 采用全日语界面,包含敬语体系&#xff08…...

自动化测试相关协议深度剖析及A2A、MCP协议自动化测试应用展望

一、不同协议底层逻辑关联分析 1. OPENAPI协议 OPENAPI 协议核心在于定义 API 的规范结构,它使用 YAML 或 JSON 格式来描述 API 的端点、请求参数、响应格式等信息。其底层逻辑是构建一个清晰、标准化的 API 描述文档,方便不同的客户端和服务端进行对接…...

ReAct、CoT 和 ToT:大模型提示词推理架构的对比分析

ReAct、CoT 和 ToT:大模型提示词推理架构的对比分析 在大型语言模型(LLM)的研究与应用中,如何有效提升模型在复杂任务上的推理能力是关键问题之一。目前,ReAct(Reasoning and Acting)、CoT&…...

用魔法打败魔法——获取软件安装路径

用魔法打败魔法——获取软件安装路径 🌟嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 背景普通方法用魔法一句话 1.首先新建‘PC自动化应…...

2024-04-19| Java: Documented注解学习 JavaDoc

在 Java 中,Documented 是一个元注解(meta-annotation),用于标记其他注解,表明这些注解应该被包含在 JavaDoc 文档中。以下是关于 Documented 注解的作用的简要说明: 作用 记录注解信息到 JavaDoc&#x…...

Spring Boot常用注解全解析:从入门到实战

🌱 Spring Boot常用注解全解析:从入门到实战 #SpringBoot核心 #注解详解 #开发技巧 #高效编程 一、核心启动与配置注解 1. SpringBootApplication 作用:标记主启动类,整合了Configuration、EnableAutoConfiguration和Component…...

【重学Android】1.关于@Composer注解的一点知识笔记

最新因为一些原因,开始重新学习Android及kotlin编程,也觉得可以顺带记录下这个过程中的一些知识点,也可以用作日后自己查找复习。 Composable 注解在 Android 开发中的使用 Composable 是 Jetpack Compose(Android 的现代声明式…...

【排队论】Probabilistic Forecasts of Bike-Sharing Systems for Journey Planning

Probabilistic Forecasts of Bike-Sharing Systems forJourney Planning abstract 我们研究了对共享单车系统(BSS)车站未来自行车可用性进行预测的问题。这是相关的,以便提出建议,保证用户能够进行旅行的概率足够高。为此&#x…...

大数据平台简介

一、分布式系统基础架构 (一)定义与核心特征 分布式系统是由多台计算机(节点)通过网络协作组成的系统,对外表现为一个统一整体。其核心特征包括: 去中心化:节点平等或分角色协作(如…...

加一:从简单问题到复杂边界的深度思考

加一:从简单问题到复杂边界的深度思考 引言 在算法世界里,有些问题看似简单,实则暗藏玄机,其中“加一”问题就是一个典型例子。所谓“加一”,通常指的是给一个由数字组成的数组表示的整数加一,这听起来简…...

高精度算法(加、减、乘、除、阶乘和)​

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 唯有主动付出,才有丰富的果…...

实战设计模式之备忘录模式

概述 与解释器模式、迭代器模式一样,备忘录模式也是一种行为设计模式。备忘录模式允许我们保存一个对象的状态,并在稍后恢复到这个状态。该模式非常适合于需要回滚、撤销或历史记录等功能的应用场景。通过使用备忘录模式,开发者可以轻松添加诸…...

keil5 µVision 升级为V5.40.0.0:增加了对STM32CubeMX作为全局生成器的支持,主要有哪些好处?

在Keil5 μVision V5.40.0.0版本中,增加了对STM32CubeMX作为全局生成器的支持,这一更新主要带来了以下三方面的提升: 开发流程整合STM32CubeMX原本就支持生成Keil项目代码,但新版本将这一集成升级为“全局生成器”级别,意味着STM32CubeMX生成的代码能直接成为Keil项目的核…...

吉尔吉斯斯坦工商会代表团赴齐河德瑞新能源汽车考察

德州齐河,2025年4月15日电 时中美贸易突变之际,乘国家一带一路之风。 展中国新能源之宏图,塑国贸体系之新方向。 今日上午,吉尔吉斯斯坦共和国工商会代表团一行三人受邀抵达济南,开启对德瑞新能源科技有限公司&…...

无人机在农业中的应用与挑战!

一、无人机在农业中的作用 1. 提升作业效率与降低成本 无人机在喷洒农药、播种、施肥、吊运等环节显著提升效率。例如,湖北秭归县使用大疆T100无人机吊运脐橙,单次85公斤的运输任务仅需2分钟,而人工需1小时,综合成本降低250元…...

放松大脑的方法

帮助一个人放松大脑,需要结合生理调节、心理技巧和环境优化。以下是一些科学有效的方法,涵盖即时缓解和长期习惯培养: 一、即时放松技巧(快速起效) 1. 深呼吸法(4-7-8呼吸) 方法:吸…...

QT网络拓扑图绘制实验

前言 在网络通讯中,我qt常用的是TCP或者UDP协议,就比方说TCP吧,一台服务器有时可能会和多台客户端相连接,我之前都是处理单链接情况,最近研究图结构的时候,突然就想到了这个问题。那么如何解决这个问题呢&…...

英语四级翻译题练习文章示例

大学正慢慢成为过去吗?Are universiities slowly becoming a thing of the past? 1.1900年前后,法国艺术家让-马克科泰接受委托绘制一组图画,描绘他认为的2000年人们可能过上的生活。Around 1900, the French artist Jean-Marc Cote was commissioned …...

支持中文对齐的命令行表格打印python库——tableprint

文章目录 快速入门 还在为表格中含有中文,命令行打印无法对齐而苦恼吗? 还在为冗长的数据添加代码而抓狂吗? tableprint来了!!!,它完美的解决了上述两个问题,快来试试吧!…...

从《周游记3》演绎歌剧版《菊花台》,周杰伦婚礼曲目意大利文版惊喜亮相

今天(4月19日)22:00,由魔胴西西里咖啡冠名的户外实境互动综艺《周游记3》第四期即将播出。本期节目中,“J式之旅”发起人周杰伦和林暐恒、杜国璋、陈冠霖、陈冠廷,将继续意大利之旅,从那不勒斯的百年老店到…...

生物化学笔记:医学免疫学原理23 免疫检查点分子与肿瘤免疫治疗(PD-1抑制剂黑色素瘤)

免疫检查点分子与肿瘤免疫治疗 免疫检查点分子与肿瘤免疫治疗-2...

CasualLanguage Model和Seq2Seq模型的区别

**问题1:**Causal Language Modeling 和 Conditional Generation 、Sequence Classification 的区别是什么? 因果语言模型(Causal Language Model): 预测给定文本序列中的下一个字符,一般用于文本生成、补全句子等,模型…...

verilog float mult

module pipe_float_mul(input wire clk ,// 时钟信号input wire en ,// 使能信号input wire rst_n ,// 复位信号input wire round_cfg ,// 决…...

微信小程序调用yolo目标检测模型

目录 后端 前端微信小程序 完整代码 后端 利用Flask,调用目标检测模型,后端代码如下。 # flask_yolo.py from flask import Flask, request, jsonify from ultralytics import YOLO from PIL import Imageapp Flask(__name__) model_path best.p…...

Flink框架十大应用场景

Flink框架适合应用的场景 1. 流式数据处理 Flink框架最常用的应用场景是流式数据处理。流式数据处理是指对实时数据进行处理,以便及时地做出决策。例如,一个电商网站需要对用户的行为进行实时分析,以便根据用户的兴趣和行为推荐商品。Flink框架可以帮助电商网站实时地处理数…...

Crawl4AI:重塑大语言模型数据供给的开源革命者

在AI技术飞速迭代的今天,大型语言模型(LLMs)的进化已从单纯参数竞赛转向数据质量与实时性的深度博弈。传统API接口的僵化、静态数据库的滞后性,正在成为制约AI系统实用价值的桎梏。而Crawl4AI的出现,以开源之力重构了数…...

Android 应用wifi direct连接通信实现

一. 打开Wi-Fi direct 1.必须启用Wi-Fi功能&#xff1a;在设备设置中开启Wi-Fi主开关&#xff08;即使未连接路由器&#xff09; 关闭冲突功能&#xff1a;若已开启「热点共享」或连接到其他Wi-Fi网络&#xff0c;需先关闭相关功能以避免硬件占. <!-- Wi-Fi Direct 核心权限…...

Java 动态代理教程(JDK 动态代理)(以RPC 过程为例)

1. 什么是动态代理 在运行时为指定的接口自动生成代理对象&#xff0c;并通过 invoke 方法增强了这些对象的功能 2. 两个核心组件 java.lang.reflect.Proxy类 这个类提供了方法&#xff1a;newProxyInstance()用来创建一个代理对象 public static Object newProxyInstance(…...