Ubuntu 18.04 安装 fastdds 笔记
NOTE
这次安装根据官网上的教程进行安装,分别使用的源码安装和二进制安装方式,都编译成功了
- 二进制安装方式过程比较简单,但是带来的问题是,整个过程不可控,整体的编译流程都是由官方给你写好的,只能按着写好的步骤来,我是使用这种方式安装的。
- 源码方式,步骤比较多,git下载时因为国内的原因,经常容易连不上,下载比较麻烦,网上许多教程更多的也是通过这种方式来安装
开始安装
安装依赖
asio安装
[asio库官方下载地址](https://sourceforge.net/projects/asio/)
所有的依赖安装中,我只强调这一个,其他的根据官网上给出的步骤进行安装就好了
这里的asio库如果你去网上搜的话,都是让你下载 boost库,这个库里也有 asio库,但是千万不要这样下载,因为 fastdds 依赖的是单独的 asio 库,如果使用boost中的在编译的时候是会报错的,一定要注意
当然,如果有小倒霉蛋已经按照网上的教程执行过了,也没关系,按照下边的方法进行删除就好了。
[如何删除手动安装boost库](https://blog.csdn.net/liubang00001/article/details/137841399)
另外,如果通过 apt 安装了 libboost-all-dev 的话,执行 sudo apt purge libboost-all-dev 就可以了
下载完成后,解压压缩包,执行 `autoreconf -i` ,然后执行 `./configure`,等待执行完成后,执行 `make`,
最后执行 `make install `,上述流程执行完成后,asio库已经安装到 `/usr/local/`目录下,此时就已经安装好了
[安装备用教程](https://zhuanlan.zhihu.com/p/658588694)
fastdds安装
下载完成后,执行 `sudo ./install.sh --no-install-dependens --install-examples` 开始安装
上面参数的详细解释可以执行 `sudo ./install.sh --help` 进行查看
备注(升级 gcc 和 cmake)
[安装gcc] (https://blog.csdn.net/tytyvyibijk/article/details/123074333)
[不同版本GCC 切换] (https://www.jianshu.com/p/f66eed3a3a25)
cmake 升级
[cmake升级](https://blog.csdn.net/qq_27350133/article/details/121994229)
更新–20240522
当使用 fastddsgen 根据 IDL 文件生成 python 代码时 ,在进行链接时会产生 libfastcdr.a 报错,需要重新编译,此时我采用的方法是将之前安装的
fastdds全部删除重新安装,使用二进制安装方式,进入 src目录,分别进入 fastcdr 和 fastrtps 目录,使用 vim 打开CMakeLists.txt ,添加下面的参数
然后重新编译。
add_compile_options(-fPIC)
project(fastcdr VERSION 2.2.1 LANGUAGES CXX)
add_compile_options(-fPIC) # 在上边的两个文件中分别添加这个参数
set(PROJECT_NAME_STYLED "FastCDR")
set(PROJECT_NAME_LARGE "Fast CDR")
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
set(${PROJECT_NAME}_DESCRIPTION_SUMMARY "C++ library for serialize using CDR serialization")
set(${PROJECT_NAME}_DESCRIPTION "eProsima ${PROJECT_NAME_LARGE} library provides two serialization mechanisms. One is the standard CDR serialization mechanism, while the other is a faster implementation that modifies the standard.")