Rerun C++ 项目搭建指南:用 CMake + FetchContent 快速接入 C++ SDK

Rerun C++ 项目搭建指南:用 CMake + FetchContent 快速接入 C++ SDK Rerun C 项目搭建指南用 CMake FetchContent 快速接入 C SDK【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun本篇指南将带你从零搭建一个基于 CMake 的 C 项目通过FetchContent一键引入 Rerun C SDK并完成编译、运行与可视化数据输出的完整流程。读完本文你将掌握最小可用的CMakeLists.txt写法、rerun.hpp头文件的引入方式以及 SDK 底层由rerun_c静态库与 Apache Arrow 组成的构建依赖关系为后续在机器人、多模态数据等场景中记录与可视化数据打下基础。前置说明本文默认你已经安装了 C SDK参见安装 C SDK并拥有一套可用的 C 工具链与 CMake 构建环境。在本项目中我们将让 Rerun 的 CMake 脚本自动下载并构建 Apache Arrow 的 C 库无需手工安装。编写 CMakeLists.txt最小可用配置一个最小可用的CMakeLists.txt只需要几行配置核心思路是通过FetchContent声明并下载 Rerun C SDK 发行包然后将其作为链接目标引入你的可执行程序cmake_minimum_required(VERSION 3.16...3.27) project(example_project LANGUAGES CXX) add_executable(example_project main.cpp) # Download the rerun_sdk include(FetchContent) FetchContent_Declare(rerun_sdk URL https://github.com/rerun-io/rerun/releases/latest/download/rerun_cpp_sdk.zip) FetchContent_MakeAvailable(rerun_sdk) # Link against rerun_sdk. target_link_libraries(example_project PRIVATE rerun_sdk)要点解析CMake 版本要求cmake_minimum_required(VERSION 3.16...3.27)与仓库中 rerun_cpp/CMakeLists.txt 顶部的版本区间保持一致保证了FetchContent、target_compile_features等 CMake 特性的可用性。下载即构建FetchContent_MakeAvailable(rerun_sdk)会从发行版下载rerun_cpp_sdk.zip——这是一个包含预编译rerun_c静态库覆盖 Linux x64/Arm64、Windows x64、macOS Apple Silicon 等主流桌面平台、全部 C 头文件与源码以及 CMake 构建说明的 SDK 打包详见 rerun_cpp/README.md 的 SDK bundle 说明。默认情况下它还会顺带下载并构建所需的 Apache Arrow C 库。C17 自动启用Rerun 要求至少 C17。链接rerun_sdk后依赖其target_compile_features(rerun_sdk PUBLIC cxx_std_17)见 rerun_cpp/CMakeLists.txt会自动将 C17 或更高标准应用到你的目标上无需在project()中手工指定。引入头文件一行包含所有类型使用 Rerun 只需要包含一个统一头文件#include rerun.hpprerun.hpp是 SDK 的唯一入口头文件。从源码结构看SDK 将类型按命名空间组织为rerun::archetypes如Points3D、Image、rerun::components如Position3D、Color与rerun::encodings包含rerun.hpp后绝大多数 archetype 与 component 类型都会进入rerun命名空间便于直接使用。这些类型大多由 Rerun 的 types builder 生成并随仓库发布见 rerun_cpp/README.md。构建与运行配置并编译项目然后运行生成的可执行文件cmake -B build cmake --build build -j ./build/example_projectcmake -B build在build目录完成配置首次执行会触发FetchContent下载 SDK 与 Arrow耗时取决于网络与机器性能cmake --build build -j并行编译运行./build/example_project时程序会通过 SDK 尝试连接或拉起 Rerun Viewer 并发送数据。提示查看数据前请确保已经安装了 Rerun Viewer独立于语言 SDK 安装多种安装方式见安装 Viewer。建议让 SDK 与 Viewer 的版本保持一致因为当前数据格式在不同版本间尚未完全稳定。深入SDK 的底层构建依赖与可配置项了解 SDK 由哪些部分组成能帮助你在遇到链接错误或需要定制构建时快速定位问题。从构建系统角度看Rerun C SDK 依赖三部分C SDK 源码rerun_cpp/src头文件与源文件放在同一目录下为了规避不同平台、编译器版本与 C 标准库版本的兼容性问题官方推荐直接从源码构建rerun_c静态库一个极简的 C 接口 SDK是连接共享 Rust 代码库的桥梁Rust 侧实现位于 crates/top/rerun_c。由于 C ABI 的稳定性官方为每个版本提供全平台预编译产物Apache Arrow C 库SDK 用它完成所有数据序列化再交给rerun_c传输。这一依赖关系在 rerun_cpp/CMakeLists.txt 中体现得很直观rerun_c以STATIC IMPORTED方式导入并按平台选择默认库文件例如 Linux x64 对应librerun_c__linux_x64.arerun_sdk以PUBLIC方式链接rerun_c以PRIVATE方式链接rerun_arrow_target。如果你的项目有更复杂的构建需求SDK 的 CMake 脚本还提供了若干配置选项完整说明见 rerun_cpp/cmake_setup_in_detail.md配置项默认值作用RERUN_DOWNLOAD_AND_BUILD_ARROWON开启时下载固定版本的 Arrow C 并加入构建关闭时通过find_package查找已安装的 ArrowRERUN_ARROW_LINK_SHAREDOFF开启时动态链接 Arrow否则静态链接。共享链接可加快链接、减小体积但运行时定位共享库可能带来挑战RERUN_C_LIB按平台自动推导指定要链接的rerun_c静态库路径适合自定义下载/构建机制的场景RERUN_CPP_SOURCE_DIR由 CMakeLists.txt 位置决定指定包含rerun.hpp的 include 与源码目录除FetchContent工作流外SDK 还支持将源码直接add_subdirectory引入、cmake --install后通过find_package(rerun_sdk REQUIRED)消费、以及通过 condalibrerun-sdk或 vcpkgrerun-sdk端口安装等方式详见 rerun_cpp/README.md可按团队构建习惯自行选择。下一步开始记录数据搭建完成后即可进入Log and Ingest 教程学习如何初始化RecordingStream、通过 archetype如Points3D、LineStrips3D记录实体与组件批次以及如何使用时间轴timeline与空间变换让数据动起来。仓库中对应的可运行示例可参考 examples/cpp 下的dna、minimal等工程它们展示了从spawn拉起 Viewer、log记录点到save落盘.rrd文件的完整用法。【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考