《C++ 项目:手写大模型接入 SDK》Trae IDE 开发环境搭建与依赖管理

🔥小叶-duck:个人主页

❄️个人专栏:《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》

《Linux系统从入门到实践》《Linux网络从入门到实践》

《Qt 方寸极境》 《MySQL》

✨未择之路,不须回头
已择之路,纵是荆棘遍野,亦作花海遨游


目录

前言

一、开发环境介绍

[1.1 AI 编程插件类](#1.1 AI 编程插件类)

[1.1.1 核心定位](#1.1.1 核心定位)

[1.1.2 主流产品](#1.1.2 主流产品)

[1.2 命令行终端类 AI 编程工具](#1.2 命令行终端类 AI 编程工具)

[1.2.1 核心定位](#1.2.1 核心定位)

[1.2.2 主流产品](#1.2.2 主流产品)

[1.3 AI 原生编程 IDE](#1.3 AI 原生编程 IDE)

[1.3.1 核心定位](#1.3.1 核心定位)

[1.3.2 主流产品](#1.3.2 主流产品)

[1.3.3 选型依据](#1.3.3 选型依据)

[二、Trae IDE 环境配置](#二、Trae IDE 环境配置)

[2.1 产品定位](#2.1 产品定位)

[2.2 安装与远程连接](#2.2 安装与远程连接)

[2.2.1 基础信息](#2.2.1 基础信息)

[2.2.2 Remote SSH 远程开发能力](#2.2.2 Remote SSH 远程开发能力)

[2.3 C/C++ 远程开发必备插件](#2.3 C/C++ 远程开发必备插件)

[2.3.1 clangd 插件](#2.3.1 clangd 插件)

[2.3.2 CMake Tools 插件](#2.3.2 CMake Tools 插件)

[3.1 基础工具链](#3.1 基础工具链)

[3.1.1 build-essential](#3.1.1 build-essential)

[3.1.2 cmake](#3.1.2 cmake)

[3.1.3 pkg-config](#3.1.3 pkg-config)

[3.1.4 curl](#3.1.4 curl)

[3.2 业务功能库](#3.2 业务功能库)

[3.2.1 gflags](#3.2.1 gflags)

[3.2.2 spdlog](#3.2.2 spdlog)

[3.2.3 fmt](#3.2.3 fmt)

[3.2.4 jsoncpp](#3.2.4 jsoncpp)

[3.2.5 libssl-dev](#3.2.5 libssl-dev)

[3.2.6 gtest](#3.2.6 gtest)

[3.2.7 cpp-httplib](#3.2.7 cpp-httplib)

四、环境部署全流程与验证

[4.1 第一步:更新软件源并安装基础工具链](#4.1 第一步:更新软件源并安装基础工具链)

[4.2 第二步:通过 apt 安装业务开发库](#4.2 第二步:通过 apt 安装业务开发库)

[4.3 第三步:编译 gtest 源码生成静态库](#4.3 第三步:编译 gtest 源码生成静态库)

[4.4 第四步:安装 cpp-httplib](#4.4 第四步:安装 cpp-httplib)

[4.4.1 官方直连(网络良好场景)](#4.4.1 官方直连(网络良好场景))

[4.4.2 国内加速(推荐,国内服务器)](#4.4.2 国内加速(推荐,国内服务器))

[4.4.3 备选方案](#4.4.3 备选方案)

[4.5 第五步:环境完整性验证](#4.5 第五步:环境完整性验证)

结束语


前言

本篇内容先介绍当下主流 AI 辅助编程工具,再介绍 Trae IDE 的远程 SSH 开发配置,接着梳理项目所需要的全套 C++ 三方依赖库,最后给出完整的一键部署脚本与环境验证代码,确保后续 SDK 编码、单元测试都能正常运行。

一、开发环境介绍

在正式开启 C++ AI 大模型接入 SDK 项目开发前,我们需要挑选适配项目的开发环境。随着人工智能技术的飞速发展,AI编程助手类的插件和 IDE 如雨后春笋般涌现,为开发者提供强大的代

码生成、智能补全、错误检测和修复等功能,显著提高了开发效率。

当前市面上 AI 编程辅助工具种类丰富,大体可以分为 IDE 插件类 、命令行终端类 、AI 原生编程 IDE三大类别,不同类型工具适用的开发场景有所区别。

1.1 AI 编程插件类

1.1.1 核心定位

以IDE 插件 的形式交付,不需要更换原有编辑器,依托现有 IDE 底座来增加 AI 编码增强能力。这类插件生态成熟,主流产品都兼容 VS Code 以及 JetBrains 全家桶 IDE,适合习惯原有编辑器、只想额外增加 AI 辅助能力的开发者。

1.1.2 主流产品

  • **GitHub Copilot:**支持 VS Code、JetBrains 系列 IDE;具备实时代码补全、Copilot 对话,能够感知多语言项目上下文,自动生成测试用例。
  • **Fitten Code:**支持 VS Code、JetBrains 系列 IDE;提供代码补全、Bug 静态检测、注释生成、单元测试自动化生成能力。
  • **Cline:**仅支持 VS Code;可以读写项目文件、执行命令行任务,内置浏览器环境集成,带有权限确认机制,支持编排任务链路。
  • **通义灵码:**支持 VS Code、JetBrains IDE,还有独立 IDE 版本;支持多文件批量修改、MCP 工具链调用、行间会话,自带个性化记忆体系。

1.2 命令行终端类 AI 编程工具

1.2.1 核心定位

不依赖图形化 IDE,直接在服务器终端环境和大模型交互 ,更适配服务器运维、纯终端远程开发场景,适合无图形界面的 Linux 服务器开发。

1.2.2 主流产品

  • **Claude Code:**擅长长文档逻辑分析、代码生成与安全审查,最高支持 200K 上下文,支持自然语言交互;底层依托 Claude 3 系列模型。
  • **Gemini CLI:**在终端内直接对话,可生成代码、解释报错信息,同时支持通用文本处理、多模态文件传输;底层依托 Gemini-2.5-pro 模型。

1.3 AI 原生编程 IDE

1.3.1 核心定位

这类 IDE 大多基于 VS Code 开源内核二次开发,操作逻辑和 VS Code 保持高度一致。开发者可以直接导入原有 VS Code 配置,迁移成本很低;并且深度内置大模型,拥有完整项目级 AI 开发能力,能力上限强于普通插件。

1.3.2 主流产品

IDE 名称 出品方 核心特性 内置模型
Cursor - 代码自动生成、智能补全、Bug 修复、多文件编辑、自然语言指令 Claude、GPT-4、Gemini 等
IDX 谷歌 云端 VS Code 开发环境,内置 Android 模拟器、Firebase,支持全栈应用一键部署 深度集成 Gemini 家族
Kiro 亚马逊 需求管理、自动化开发、代码修改预览、即时撤销、Agentic Chat Claude-Sonnet-4、Claude-Opus-4
Trae 字节跳动 国内访问稳定,原生内置 Remote SSH,支持 Agent 自动编程、智能问答 DeepSeek、Doubao、Kimi、Qwen 等
Qoder 阿里巴巴 代码库全景理解、结对编程、Quest 模式、长短记忆系统 Claude、GPT、Gemini 等
CodeBuddy 腾讯 设计稿转代码、全栈开发、内置腾讯云服务,一键部署分享 腾讯混元、DeepSeek 等

1.3.3 选型依据

本项目将选用 Trae IDE 进行开发。

**核心原因:**国内网络访问稳定,基础功能免费,原生自带 Remote SSH 能力,不需要额外安装插件,非常适合我们 Linux 下 C++ 项目远程开发。

小提示:AI 编程工具只是提效手段。在当前我们基础学习阶段,仍然要扎实打好语言、操作系统、网络等底层基本功,尽量手动手写代码,减少 AI 依赖;等独立编码能力成型之后,再借助 AI 工具提升开发效率。并且绝大多数 AI 原生 IDE 底层都是 VS Code 内核,基础操作差异不大。

二、Trae IDE 环境配置

2.1 产品定位

Trae IDE是基于 VS Code 内核深度改造、原生集成大模型能力的开发工具。内置智能问答、代码自动补全,还提供基于 Agent 能力的全自动编程功能,同时支持本地开发与远程 Linux 主机开发两种工作模式。

重要补充: Trae IDE 本身不自带编译、链接工具链。代码的编译、构建流程,完全依赖远程 / 本地主机环境预先装好的 gcc、cmake 等系统工具,IDE 只负责代码编辑与 AI 辅助。

2.2 安装与远程连接

2.2.1 基础信息

下载安装包后,跟随向导一路下一步即可完成客户端安装。

2.2.2 Remote SSH 远程开发能力

Trae 原生内置 Remote SSH 组件 ,无需额外安装插件,就能直接连接远程 Linux 服务器,非常适配我们本次 C++ 项目的开发场景。

连接操作流程:

  1. 在 Trae 界面选择「连接远程主机」
  2. 输入连接格式:ssh 用户名@IP地址
  3. 输入密码或者配置密钥完成登录认证

登录成功后,Trae 内的文件管理器、内置终端,都会直接映射到远程 Linux 主机环境,读写文件、执行命令都在远端服务器上运行。

2.3 C/C++ 远程开发必备插件

重点提醒: 在远程 SSH 模式下,clangd、CMake Tools 这类插件会安装到远程 Linux 主机,而不是本地电脑,这是远程开发容易踩坑的点。

2.3.1 clangd 插件

clangd 是C/C++ 语言服务插件 ,为代码提供静态语法解析能力,是 C++ 开发的核心依赖。 核心能力:

  • 语法高亮、智能代码补全
  • 实时静态错误检查:识别语法错误、类型不匹配、符号未定义等问题
  • 代码导航:一键跳转到变量、函数的定义与引用位置
  • 悬浮文档提示:鼠标悬停函数,展示函数签名、参数说明和注释文档

安装方式:打开插件管理器,搜索clangd,选择对应插件安装。

2.3.2 CMake Tools 插件

CMake Tools 是 CMake 构建系统集成插件,用来在 IDE 内管理项目构建流程。 核心能力:

  • 自动生成 CMake 构建配置
  • 快速切换、选择编译器
  • 管理编译目标,一键执行编译、调试操作

在插件市场搜索CMake Tools完成安装,Trae 依靠该插件完成 CMake 项目集成,简化我们 SDK 项目的构建操作。

三、C++ 第三方依赖库体系

我们这个 AI 大模型接入 SDK 项目,需要一套完整的 C++ 依赖库支撑。整体分为两大板块:基础编译工具链 、业务功能库 。

下面逐一介绍每个组件的作用与安装方式。

3.1 基础工具链

这一组是 Linux 下 C++ 开发必备底层工具,负责源码编译、构建管理、库查找、接口调试。

3.1.1 build-essential

Ubuntu 平台编译元数据包,一次性集成 gcc、g++、make 等核心编译工具,是所有 C++ 项目的基础前提。

3.1.2 cmake

跨平台项目构建工具,用来统一管理项目编译配置,自动生成构建脚本,适配多文件、多依赖的工程化项目,本项目会全程使用 CMake 组织 SDK 代码。

3.1.3 pkg-config

编译辅助工具,可以自动检索本机第三方库的头文件路径、链接参数,简化 Makefile 或者 CMake 中库的引入配置。

3.1.4 curl

命令行 HTTP/HTTPS 请求工具,开发阶段用来快速验证大模型 API 连通性,提前校验接口地址、请求报文是否正常,不参与最终程序编译。

3.2 业务功能库

这部分是 SDK 业务逻辑所依赖的 C++ 三方库,在前面章节我们已经逐个学习了gflags、spdlog、spdlog、fmt、jsoncpp、gtest、cpp-httplib等第三方库的基本使用,对于 libssl-dev 第三方库我们会在讲解项目的时候进行对应的使用讲解,这里统一汇总。

3.2.1 gflags

谷歌开源命令行参数解析库,项目中用来读取命令行传入的配置,例如大模型接口地址、超时时间等。

Ubuntu 开发包:libgflags-dev

3.2.2 spdlog

高性能 C++ 日志库,本项目用于日志输出,支持控制台、文件滚动输出,默认 header-only。

Ubuntu 开发包:libspdlog-dev

3.2.3 fmt

现代 C++ 格式化库,类型安全,相比传统 printf、iostream 性能更高,spdlog 底层也依赖 fmt。

Ubuntu 开发包:libfmt-dev

补充:安装时必须选用带 - dev 的开发包,仅运行时库不包含头文件,无法用于代码开发。

3.2.4 jsoncpp

C++ 的 JSON 序列化与反序列化库,用来组装发给大模型的请求 JSON,并且解析 API 返回的 JSON 报文。

Ubuntu 开发包:libjsoncpp-dev 头文件引入形式:#include <jsoncpp/json/json.h>

3.2.5 libssl-dev

OpenSSL 开发库,提供 SSL/TLS 协议支持。因为大模型 API 基本都是 HTTPS 协议,需要依靠 OpenSSL 完成加密通信。

3.2.6 gtest

谷歌开源 C++ 单元测试框架,用来给 SDK 的各个模块编写单元测试,保证接口可靠性。

Ubuntu 开发包:libgtest-dev

注意:apt 安装的 gtest 仅提供源码,需要手动编译生成静态库后才能链接使用。

3.2.7 cpp-httplib

轻量级 header-only 的 HTTP 客户端与服务端库,我们的 SDK 会使用它作为 HTTP 客户端,发送网络请求访问大模型 API。

部署方式:直接把头文件拷贝到系统include目录,或者放到项目源码内引入。

四、环境部署全流程与验证

4.1 第一步:更新软件源并安装基础工具链

在远程 Linux 主机任意目录执行,推荐在家目录操作。

bash 复制代码
# 更新软件源索引
sudo apt update
# 批量安装编译基础工具
sudo apt install -y build-essential cmake pkg-config curl

4.2 第二步:通过 apt 安装业务开发库

bash 复制代码
# 1.gflags 命令行参数解析库
sudo apt install -y libgflags-dev
# 2.spdlog 高性能日志库
sudo apt install -y libspdlog-dev
# 3.fmt 格式化库
sudo apt install -y libfmt-dev
# 4.jsoncpp JSON解析库
sudo apt install -y libjsoncpp-dev
# 5.OpenSSL 加密开发包
sudo apt install -y libssl-dev
# 6.gtest 单元测试源码
sudo apt install -y libgtest-dev

4.3 第三步:编译 gtest 源码生成静态库

apt 下载的 gtest 只有源码,必须编译,否则链接会报错

bash 复制代码
cd /usr/src/gtest
sudo cmake .
sudo make
sudo cp lib/libgtest*.a /usr/lib/

4.4 第四步:安装 cpp-httplib

cpp-httplib 是纯头文件库,只需要拿到httplib.h放到系统头文件目录。

4.4.1 官方直连(网络良好场景)

bash 复制代码
cd /tmp
git clone https://github.com/yhirose/cpp-httplib.git
cd cpp-httplib
sudo cp httplib.h /usr/include/
cd ~

4.4.2 国内加速(推荐,国内服务器)

bash 复制代码
cd /tmp
# 使用代理加速github克隆
git clone https://ghproxy.com/https://github.com/yhirose/cpp-httplib.git
cd cpp-httplib
sudo cp httplib.h /usr/include/
cd ~

4.4.3 备选方案

  • 本地下载 ZIP 源码包,上传到远程主机解压,手动拷贝httplib.h
  • 直接将httplib.h放到项目源码目录,使用相对路径#include "httplib.h"引入

4.5 第五步:环境完整性验证

我们编写一个综合测试代码,一次性验证所有库头文件引入、链接是否正常 。

新建 test.cc,代码如下:

cpp 复制代码
#include <fmt/core.h>
#include <gflags/gflags.h>
#include <gtest/gtest.h>
#include <httplib.h>
#include <iostream>
#include <jsoncpp/json/json.h>
#include <jsoncpp/json/value.h>
#include <spdlog/spdlog.h>

// 定义gflags命令行参数
DEFINE_string(url, "gflags", "your name");

int main(int argc, char *argv[]) 
{
  // 测试 gflags 参数解析
  gflags::ParseCommandLineFlags(&argc, &argv, true);
  std::cout << "Hello " << FLAGS_url << std::endl;

  // 测试 spdlog 日志输出
  spdlog::info("Hello spdlog");

  // 测试 fmt 格式化能力
  std::string msg = fmt::format("fmt says: {}", 42);
  std::cout << msg << std::endl;

  // 测试 jsoncpp 序列化
  Json::Value val;
  val["name"] = FLAGS_url;
  val["age"] = 18;
  std::cout << val.toStyledString() << std::endl;

  // 测试 httplib 头文件(仅验证头文件可正常引入)
  httplib::Client cli("http://example.com");
  std::cout << "httplib header included successfully." << std::endl;

  // 测试 gtest 库链接
  EXPECT_EQ(1, 1);
  std::cout << "gtest linkage verified." << std::endl;
}

编译与运行命令:

bash 复制代码
# 编译测试程序,链接所有依赖库以及线程库pthread
g++ test.cc -lgflags -lspdlog -lfmt -ljsoncpp -lgtest -lgtest_main -pthread -o test
# 运行测试程序,传入自定义参数
./test --url=Trae

运行结果展示:

能够完整输出以上所有内容,代表全部依赖库安装、链接正常,项目开发环境就绪。

结束语

本章完成了 AI 辅助开发工具选型、Trae 远程开发环境搭建,并且一次性部署了项目所需要的全部 C++ 三方库。通过环境校验代码,确认所有头文件、静态库都可以正常引入与链接。

相关推荐
一麻袋土豆灬1 小时前
Workbuddy模型名后面那个 0.11x 是什么意思
大数据·程序人生·语言模型·ai编程
沫璃染墨2 小时前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程
草莓熊Lotso2 小时前
【C++ 基于微服务的即时通讯系统】Elasticsearch 从安装到 C++ 客户端二次封装全落地
linux·网络·数据库·c++·elasticsearch·微服务
CHPCWWHSU2 小时前
FreeCAD 源码解读:从 Property 到 Command,看一套 CAD 内核的完整闭环
c++·cad
代钦塔拉2 小时前
【C++/Qt 进阶】设计模式系列(5):适配器模式——给“不兼容的接口“贴一层翻译膜
c++·qt·设计模式
aqiu1111112 小时前
蓝桥杯真题复盘:Fibonacci 数列与黄金分割(C++ 算法详解)
c++·算法·蓝桥杯
lojox2 小时前
C++ 手写 STL list(双向循环链表)原理剖析与实现
c++·链表·list
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会C/C++考级:拓扑排序课程表排课解析
c++·python·算法·bfs·信息学竞赛
暖焰核心3 小时前
二叉搜索树——从插入查到key-value改写
c++