1. FastDDS跨平台编译的挑战与价值
第一次在Linux上编译FastDDS的经历让我记忆犹新——原本在Windows下顺利运行的工程,换到Ubuntu后居然报出了几十个编译错误。这个经历让我深刻认识到,虽然FastDDS作为DDS标准的现代C++实现号称跨平台,但不同操作系统间的差异远比想象中复杂。
FastDDS(原名Fast RTPS)是eProsima公司开发的DDS中间件实现,广泛应用于自动驾驶、工业物联网等实时系统。其源码编译过程涉及CMake配置、第三方依赖管理、编译器特性适配等多个环节,而Windows和Linux在文件系统、库链接方式、系统API等方面的差异,会导致编译配置存在显著区别。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备的关键差异
2.1 系统基础依赖对比
Windows平台通常需要手动安装:
- Visual Studio 2019/2022(必须包含C++桌面开发组件)
- CMake 3.16+(需勾选"Add to PATH")
- Git for Windows(用于克隆仓库)
而Linux下则通过包管理器解决:
bash复制# Ubuntu/Debian
sudo apt install -y g++ cmake git libssl-dev libasio-dev libtinyxml2-dev
# CentOS/RHEL
sudo yum install -y gcc-c++ cmake3 git openssl-devel asio-devel tinyxml2-devel
关键提示:Linux下asio库的版本必须≥1.10,旧版会导致编译失败。可通过
apt show libasio-dev验证版本。
2.2 工具链配置要点
Windows用户需要注意:
- 必须使用"x64 Native Tools Command Prompt"启动编译
- 确保CMake生成器指定正确的VS版本:
bash复制cmake -G "Visual Studio 17 2022" -A x64 ..
Linux下则需注意编译器兼容性:
bash复制# 强制使用C++14标准
export CXXFLAGS="-std=c++14"
# 某些发行版需要
