OpenDDS在arm-linux平台下的交叉编译方法(1)

OpenDDS是跨平台的中间件,支持多种操作系统,包括windows,Vxworks,qnx,安卓,linux等。
本文即记录如何将OpenDDS库交叉编译到arm-linux平台以及如何把基于opendds的应用程序移植到arm-linux平台上。

OpenDDS库文件的交叉编译

  1. 环境准备
    交叉编译Host: Ubuntu 18.04,需要安装cmake, perl, make等工具
    OpenDDS:最新版本即可
    arm-linux交叉编译器:安装交叉编译器到/opt下面,注意交叉编译器的g++,lib库等一定要完备。
  2. 交叉编译过程
    a. 进入到OpenDDS-“version”路径
    b. 执行./configure --target=linux-cross --target-compiler=/opt/cross-compiler/bin/arm-linux-xxx-g++
    (这个命令是指定编译类型为交叉编译,相应的交叉编译器路径在哪里)
    c. 执行完毕后,在OpenDDS-version/build目录下面会分别有两个子文件夹,host指的是用来编译的主机即ubuntu系统,target是指交叉编译的目标机,即arm-linux。他是把Opendds的源代码工程(包括ace,tao,各种应用在)target和host子文件夹下面分别拷贝一份。
    d. 在OpenDDS-“version”路径下,执行make,在target路径下,能找到编译成功的libDCPS.so即说明交叉编译成功。
    (可以看到除了libDCPS,还有其他的库文件libACE,libTAO等也在target路径下面存在,而host和openDDS root目录下面,没有任何的编译好的动态库文件)
  3. 执行验证
    a. 打包OpenDDS-“version”路径,并通过scp方式拷贝到arm-linux嵌入式板子上。
    b. 解压缩包,进入到OpenDDS-“version”,并设置以下环境变量
    (通过这里可以看出,在arm-linux环境中, OpenDDS的整个工程其实都是指向target下面的OpenDDS)
	export DDS_ROOT="$PWD/build/target"
	export ACE_ROOT="$DDS_ROOT/ACE_wrappers"
	export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:"$ACE_ROOT/lib":"$DDS_ROOT/lib"
	export PATH=${PATH}:"$ACE_ROOT/bin":"$DDS_ROOT/bin"

进入$DDS_ROOT/DevGuideExamples/DCPS/Messenger,运行样例程序即可,如果运行成功,即说明编译运行移植成功。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值