Fast-DDS-2.6.1三方库交叉编译

一、前言

项目需要编译一些Arm版本的三方库,其中Fast-DDS这个库依赖很多,比较难搞,踩了一些坑,做个记录。

二、源码下载

Fast-DDS版本:2.6.1
依赖库版本如下:
1、asio-1.26.0
2、Fast-CDR-1.0.24
3、foonathan_memory_vendor-1.2.1
4、tinyxml2-9.0.0
下载地址可以参考这个老哥:
https://blog.csdn.net/ouyang035/article/details/127898625

三、编译

编译前先将自己的交叉编译工具链添加到环境变量,具体方法在openssl交叉编译的文章中有详细描述。
整体的编译思路是把四个依赖的库分别使用交叉编译工具编译出arm版本的库并install到同一个目录中,然后在编译fast-dds时,会从install中找到依赖的文件。
1、asio-1.26.0

cd asio-1.26.0
./configure  --host=aarch64-linux --prefix=/usr/local

make install

2、Fast-CDR-1.0.24

cd Fast-CDR-1.0.24
mkdir build && cd build

cmake -DCMAKE_C_COMPILER=/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ \
-DBUILD_SHARED_LIBS=ON ..

make install

3、foonathan_memory_vendor-1.2.1
这个需要联网,而且要修改cmakelist内容
在这里插入图片描述

在这里插入图片描述

    -DCMAKE_CXX_FLAGS=-fPIC
    -DCMAKE_CXX_COMPILER=aarch64-none-linux-gnu-g++
    -DCMAKE_C_COMPILER=aarch64-none-linux-gnu-gcc
cd foonathan_memory_vendor-1.2.1
mkdir build && cd build

cmake -DCMAKE_C_COMPILER=/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ \
-DBUILD_SHARED_LIBS=ON ..

make install

4、tinyxml2-9.0.0

cd tinyxml2-9.0.0
mkdir build && cd build

cmake -DCMAKE_C_COMPILER=/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc -DCMAKE_CXX_COMPILER=/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ -DBUILD_SHARED_LIBS=ON .. 

make install

5、Fast-DDS-2.6.1

编辑cmakelist 注释openssl
在这里插入图片描述

cd Fast-DDS-2.6.1 
mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install/

make install

四、总结

交叉编译Fast-DDS比较麻烦,需要注意foonathan_memory_vendor-1.2.1这个三方库,挺恶心的,因环境和版本的原因,无法保证你按照上述方法一定能成功,希望能帮助到你,多一份参考,多一点成功的概率。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值