目录
编译环境:
编译需要的源码文件:
Fast DDS编译:
注意事项:
参考文档:
基于Fast DDS 的源码来编译相关的库,然后可以通过python 来调用库文件实现dds 数据通信,本文就详细的介绍编译过程。
编译环境:
PC:windows 11,64 位操作系统, 基于Intel x64 的处理器
cmake version 3.26.0-rc1
java 11.0.23 2024-04-16 LTS(编译Fast-DDS-Gen需要)
编译器:Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe
Gradle 7.5(编译Fast-DDS-Gen需要)
编译需要的源码文件:
- foonathan_memory_vendor :
- Fast CDR:
- Fast DDS:
eProsima Fast dds 在Windows环境中从源安装时具有以下依赖关系:
-
Asio and TinyXML2 libraries
-
OpenSSL
下载软件包然后通过指令来安装:
choco install -y -s <PATH_TO_DOWNLOADS> asio tinyxml2
choco install -y openssl
安装的文件都在下面这个路径下
C:\ProgramData\chocolatey\lib
安装完成之后可以通过指令来检验是否安装成功:
Fast DDS编译:
先在D:\DDS 下创建一个文件夹Fast-DDS ,所有的编译源码都在Fast-DDS 文件夹下面,install是我们编译出来的文件的安装路径。
- 编译Foonathan Memory
git clone https://github.com/eProsima/foonathan_memory_vendor.git
cd foonathan_memory_vendor
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=D:/DDS/Fast-DDS/install ..
cmake --build . --config Release --target install
D:\DDS\Fast-DDS\install\share 下面能看到编译出来的文件
- 编译Fast CDR
git clone --recursive https://github.com/eProsima/Fast-CDR.git
cd Fast-CDR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=D:/DDS/Fast-DDS/install ..
cmake --build . --config Release --target install
编译成功如下图 会把相关的文件写入到install文件夹中
- 编译Fast DDS
编译的时候要注意 老版本的源码是 RTPS,大家在使用源码的时候要注意版本。
git clone --recursive https://github.com/eProsima/Fast-DDS.git
cd Fast-DDS
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=D:/DDS/Fast-DDS/install ..
cmake --build . --target install
编译完成后所有的dll 和文件都在install 文件下面
编译完成后可以通过FASTDDS-Python 来测试dll 编译后是否可以使用
注意事项:
- 编译的软件版本需要保持一致, foonathan_memory_vendor,Fast CDR ,Fast DDS 如果有的是debug ,有的是release ,最后编译Fast DDS 的时候会出现无法找到lib的错误。
- 编译的dll 后需要设置环境变量最后再编译Fast DDS
参考文档:
4. Windows installation from sources — Fast DDS 2.14.2 documentation