(二)Trae 配置C++ 编译简单概念

(二)Trae 配置C++ 编译简单概念

Trae配置c++编译简单概念

零 CMake 编译C++

0.0写在前面

本文旨在初步记录c++在Trae中的时候,需要提前理解CMake / MsBuild ninja Make / cl clang-cl clang++ g++ link.exe ld.exe等基本功能.可以参考CMake…基本概念一文
另外:本文也是用来解释初级概念,特别强调是手动配置一次. 后期再补文,讲解快速上手配置.

0.1 下载安装

本文章使用Trae编译C++需要先安装CMake
下载 CMake地址
CMake是生成所有解决方案的基础,它使用项目中的CMakeLists.txt文件来展开特定项目文件(构建文件)

0.2 安装设置

  1. 设置 环境变量:Path
    开始->设置->系统->高级系统设置->“环境变量” ->Path增加如下路径
  2. 测试安装
 c:\>cmake --version cmake 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++ (微软官方)(Trae无法使用 vscode中可以使用)
  2. CMake (twxs)
  3. CMake Tools(ms-vscode)

1.3 设置文件

暂时未能调试,所以暂缺(这里是仅使用msvc的模式调试.后面有使用clang-cl的方式调试)


二 使用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

设置
笔者安装的路径为D:\Code\CodeTool\LLVM
开始->设置->系统->高级系统设置->“环境变量” ->Path增加如下路径

在这里插入图片描述

下载
地址 LLVM

在这里插入图片描述

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(VERSION3.10) # 项目名称 project(cpp3) # 设置C++标准 set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIREDON) # 添加可执行文件 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.调试

在这里插入图片描述

Read more

Flutter 三方库 flutter_adaptive_scaffold 的鸿蒙化适配指南 - 掌握一套代码适配全场景终端的自适应架构技术、助力鸿蒙应用构建从手机到平板及折叠屏的极致无缝交互体系

Flutter 三方库 flutter_adaptive_scaffold 的鸿蒙化适配指南 - 掌握一套代码适配全场景终端的自适应架构技术、助力鸿蒙应用构建从手机到平板及折叠屏的极致无缝交互体系

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 flutter_adaptive_scaffold 的鸿蒙化适配指南 - 掌握一套代码适配全场景终端的自适应架构技术、助力鸿蒙应用构建从手机到平板及折叠屏的极致无缝交互体系 前言 在 OpenHarmony 鸿蒙应用追求“万物互联、全场景覆盖”的伟大进程中,屏幕尺寸的多样性(从 6 英寸手机到 12 英寸平板,再到 2D/3D 模式切换的折叠屏)是每一位 UI 开发者必须正面迎接的挑战。如何在不为每种设备重写 UI 的前提下,实现导航栏自动从“底部”平滑流转到“侧边”?如何在宽屏模式下自动开启“双栏(Master-Detail)”布局?flutter_adaptive_scaffold 作为一个由 Flutter

By Ne0inhk
在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程

在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程

在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程 什么是 OpenClaw?—— 你的本地 AI 智能体执行框架 OpenClaw 不仅仅是一个聊天机器人,而是一个功能强大的 AI 智能体执行框架。你可以把它想象成一个能自主思考、调用工具、并替你完成复杂任务的数字员工。 🧠 核心概念 * 智能体:OpenClaw 的核心大脑。它能理解你的自然语言指令,拆解任务,并决定调用哪些工具来执行。 * 网关:所有外部访问的入口。它负责处理 WebSocket 连接、管理设备配对、路由消息,是你与智能体交互的桥梁。 * 技能:智能体可调用的具体工具,比如访问文件、操作浏览器、发送消息、查询数据库等。你可以根据需要扩展技能库。 * 记忆:OpenClaw 可以存储对话历史和重要信息,实现长期记忆和上下文理解,让交互更连贯。 * 通道:连接外部聊天平台的渠道,如

By Ne0inhk
HarmonyOS6半年磨一剑 - RcIcon组件实战案例集与应用开发指南

HarmonyOS6半年磨一剑 - RcIcon组件实战案例集与应用开发指南

文章目录 * 前言 * 项目简介 * 核心特性 * 开源计划 * rchoui官网 * 文档概述 * 第一章: 基础用法实战 * 1.1 三种符号引用方式 * 1.2 应用场景 - 工具栏快速导航 * 第二章: 尺寸系统实战 * 2.1 响应式尺寸配置 * 2.2 应用场景 - 统一设计系统尺寸规范 * 第三章: 颜色系统实战 * 3.1 多彩色系配置 * 3.2 应用场景 - 状态指示系统 * 第四章: 双风格系统实战 * 4.1 线型与实底风格对比 * 4.2 应用场景 - 底部导航栏 * 第五章: 圆角系统实战 * 5.

By Ne0inhk
Flutter 组件 short_uuids 适配鸿蒙 HarmonyOS 实战:唯一标识微缩技术,构建高性能短 ID 生成与分布式索引架构

Flutter 组件 short_uuids 适配鸿蒙 HarmonyOS 实战:唯一标识微缩技术,构建高性能短 ID 生成与分布式索引架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 short_uuids 适配鸿蒙 HarmonyOS 实战:唯一标识微缩技术,构建高性能短 ID 生成与分布式索引架构 前言 在鸿蒙(OpenHarmony)生态迈向万物互联、涉及海量离线资源标识、蓝牙广播载荷(BLE Payload)及二维码数据极限压缩的背景下,如何生成既能保留 UUID 强随机性、又能极大缩减字符长度的唯一标识符,已成为优化存储与通讯效率的“空间必修课”。在鸿蒙设备这类强调分布式软总线传输与每一字节功耗敏感的环境下,如果应用依然直接传输长度达 36 字符的标准 UUID,由于由于有效载荷溢出,极易由于由于传输协议限制导致数据截断或多次分包带来的延迟。 我们需要一种能够实现高进制转换、支持双向编解码且具备低碰撞概率的短 ID 生成方案。 short_uuids 为 Flutter 开发者引入了将标准 UUID 转化为短格式字符串的高性能算法。它利用

By Ne0inhk