C版本CycloneDDS源码在X86架构Linux系统上编译产生idlc执行文件的作用示例(cyclonedds-master/build/bin/idlc)

前言(idlc文件的产生以及在交叉编译时的作用)

idlc执行文件仅仅在C版本的CycloneDDS在X86架构上编译时才会产生

如下图所示:
请添加图片描述

X86上编译C++版本cyclonedds源码或者进行交叉编译时是不产生idlc文件的

X86架构上编译C++版本cyclonedds源码时需要添加C版的安装路径,以引入C版本安装的库文件(CMAKE_PREFIX_PATH

交叉编译时此文件十分重要,因为交叉编译时idlc_generate不可用,因此需要手动通过idlc文件加上idl文件生成源文件和头文件

1 idlc文件的作用总结

idlc的作用与idlc_generate指令时分不开的,idlc_generate的作用可以参考下文

ARM架构Linux操作系统上C语言版本的CycloneDDS代码的CMake编译详细过程(交叉编译工具链)

那么idlc的作用时什么捏?

请看如下示例:

示例说明:
在ARM架构上编译C++版本CycloneDDS源码是出现如下图所示错误,因此需要利用idlc文件手动产生.cpp.hpp文件请添加图片描述
我们将X86架构上C版本中编译生成的idlc文件拷贝至ARM架构C++版本的build-arm/lib下面,通过idlc文件生成.cpp.hpp文件。

通过下面命令生成ARM架构下C版本所需要的.c.h文件的例子如下:
~/Documents/ARM_CPP_CycloneDDS/cyclonedds-cxx-master/build-arm/lib$:
./idlc ../../../../X86_C_CycloneDDS/cyclonedds-master/examples/roundtrip/RoundTrip.idl

如下图所示插产生.c.h文件

请添加图片描述

那么生成ARM架构下C++版本所需要的.cpp.hpp文件的例子命令如下:

~/Documents/ARM_CPP_CycloneDDS/cyclonedds-cxx-master/build-arm/lib$:
./idlc -l cxx../../../../X86_C_CycloneDDS/cyclonedds-master/examples/roundtrip/RoundTrip.idl(多了 -l cxx)

但是显示缺少库

缺少X86中C生成的库:libcycloneddsidl.so.0

和X86中C++生成的库:libcycloneddsidlcxx.so
请添加图片描述

1.1 库文件的添加方法

1、使用export命令:

示例:export LD_LIBRARY_PATH=库文件的目录

比如在添加X86下C库时::export LD_LIBRARY_PATH=/home/ubuntu/Documents/X86_C_CycloneDDS/cyclonedds-master/build/lib

2、直接将所需库文件CP拷贝过来

如下图所示,将所需库全部拷贝过来

请添加图片描述

1.2 idlc文件.cpp/.hpp文件的生成

所需库文件已经全部加载过来,使用命令手动生成.cpp/.hpp文件如下图所示
请添加图片描述

2、 idlc文件详细使用办法(持续更新)

1)用法:idlc [OPTIONS] FILE
idlc加上idl文件就可生成源文件和头文件

2) idlc -l 指定编译语言(默认是c语言)
如果要生成C++的话使用idlc -l cxx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南霹雳堂雷家雷无桀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值