Cyclonedds(C/C++)源码编译详细过程
文章平均质量分 85
本栏中对C和C++版本Cyclonedds在X86和ARM架构Linux操作系统上的编译做了详细记录,包括对于编译过程中出现的工具缺失等等都给出了详细的解决方案
江南霹雳堂雷家雷无桀
高山仰止,景行行止。虽不能至,然心向往之!
展开
-
C/C++版Cyclonedds代码分别在X86和ARM架构上编译的心得总结
并且还要注意的是在安装的时候,因为C语言是C++的基础,所以在C++版本cmake过程中需要用到C版本的库文件,所以需要在cmake的时候引入C语言的安装地址。C语言的testing 需要依赖于ctest单元测试工具,虽然之前已经安装过了,但它是X86架构下的,现在需要重新安装ARM架构下的。没有什么特别注意的事项,只是在debug版本构建和testing的时候需要安装X86架构上的Cunit单元测试工具。同样需要注意的就是Ctest在X86架构上的安装,安装方法与上面CUnit安装同理。原创 2023-07-17 15:51:04 · 791 阅读 · 4 评论 -
ARM架构Linux操作系统上C++版本的CycloneDDS中HelloWorld的编译过程(交叉编译工具链)
2、将C++版本在X86下生成的HelloWorldData.cpp和hpp文件拷贝过来,并且将cpp中引入头文件的地址改一改即可。1、首先注释掉CMakeLists.txt文件中的idlc_generate指令(还有删除掉引用目标库文件的语句)等等,则再引入一次C的安装地址。最终编译查看可执行文件类型。原创 2023-07-17 14:53:38 · 717 阅读 · 0 评论 -
ARM架构Linux操作系统上C++版本的CycloneDDS代码的CMake编译详细过程(交叉编译工具链)
这个时候需要引入正确,虽然X86架构编译安装C++时也会产生,但是此处一定要指向ARM架构下的,否则文件格式不对。和之前的C版本中的情况相同(本栏目中C版本在ARM架构下的编译),ARM架构下idlc_generate失效问题。第一就是直接从X86_CPP_……下面已经安装过Gtest了,已经将Gtest的库文件放在下面了,但它是X86的,我们现在需要ARM架构的。要清楚拷贝的是哪里的.cpp和.hpp文件(拷贝的是C++版本X86架构上编译的):指定C语言的安装路径,C++的编译需要C中安装的库支持。原创 2023-07-17 14:29:56 · 414 阅读 · 0 评论 -
X86架构上的Linux操作系统安装与配置ARM架构(并进行示例测试/为DDS编译打基础)
就像你可以根据设计图纸建造不同类型的房子一样,你可以根据Linux操作系统在不同架构的设备上运行不同类型的软件0。:这是变量 ENABLE_SSL 的值,表示不启用 SSL,如果项目不需要使用 SSL 加密通信,可以将此参数设置为 NO,以禁用 SSL,告诉 CMake 在构建过程中不包含与 SSL 相关的代码和依赖项。一个操作系统的架构是指其底层硬件的类型和指令集,这决定了操作系统与硬件的兼容性。Linux操作系统可以在这两种架构上运行,因此可以在x86和ARM架构上安装和运行Linux系统。原创 2023-07-11 10:58:18 · 2195 阅读 · 0 评论 -
CUnit在ARM平台上的离线搭建(让CUnit编译安装成功之后的可执行文件.so变成ARM下的—ARM aarch64)(实用篇)
在X86架构上的Linux操作系统上面进行cmake编译(CycloneDDS的C版本),在进行testing的时候需要依赖CUnitX86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题这中方法中打开Cunit目录,经过make 、make install等步骤生成的可执行文件,通过file命令可以看到其格式为:。原创 2023-07-12 14:13:53 · 558 阅读 · 0 评论 -
X86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题
最终要生成库文件libcunit.so出来,这是重点CycloneDDS(C版本)开源代码在Linux(X86平台)系统上编译生成可执行文件的详细步骤,但在此篇中给出的方法是在线安装的办法进行安装的,但是好像出了点问题,此篇中使用离线安装你的方法安装一次。原创 2023-07-11 17:06:09 · 1074 阅读 · 0 评论 -
Gtest在ARM平台上的离线搭建(让Gtest编译安装成功之后的可执行文件.so变成ARM下的—ARM aarch64)(实用篇)
并且都是X86_64下的,这也是默认的Linux的架构,在编译时如果不用。将全部安装的gtest文件包拷贝到交叉编译目录下面。将Gtest安装包拷贝到某个目录下进行编译。Gtest如果没有的话可以官网进行下载。以后如果要对C++版本的进行编译直接。指定的话会自动读取该包下的库文件。可以看到生成了很多静态库文件。原创 2023-07-17 14:08:19 · 694 阅读 · 0 评论 -
C版本CycloneDDS源码在X86架构Linux系统上编译产生idlc执行文件的作用示例(cyclonedds-master/build/bin/idlc)
idlc执行文件仅仅在C版本的CycloneDDS在X86架构上编译时才会产生如下图所示:X86上编译C++版本cyclonedds源码或者进行交叉编译时是不产生idlc文件的X86架构上编译C++版本cyclonedds源码时需要添加C版的安装路径,以引入C版本安装的库文件(交叉编译时此文件十分重要,因为交叉编译时不可用,因此需要手动通过idlc文件加上idl文件生成源文件和头文件idlc的作用与指令时分不开的,的作用可以参考下文。原创 2023-07-14 11:17:37 · 784 阅读 · 0 评论 -
ARM架构Linux操作系统上C语言版本的CycloneDDS中HelloWorld的编译过程(交叉编译工具链)
ARM架构Linux操作系统上C语言版本的CycloneDDS中HelloWorld的编译过程与源码编译过程中的roundtrip示例编译是一样的,因为实在ARM架构上,所以需要将e注释掉,自己手动添加源代码和头文件,之后在进行cmake和make操作。原创 2023-07-13 17:11:55 · 849 阅读 · 0 评论 -
ARM架构Linux操作系统上C语言版本的CycloneDDS代码的CMake编译详细过程(交叉编译工具链)
Linux终端输入:cmake -DCMAKE_TOOLCHAIN_FILE=../arm.cmake -DCMAKE_INSTALL_PREFIX=../install_DDS_ARM -DENABLE_SSL=NO ..指令解析:1) -DCMAKE_TOOLCHAIN_FILE=../arm.cmake该指令的作用是指向arm.cmake文件的路径,在此处我的arm.cmake文件放置在/home/ubuntu/Documents/ARM_C_CycloneDDS/cyclonedds-ma原创 2023-07-13 15:25:13 · 827 阅读 · 3 评论 -
CycloneDDS(C++版本)开源代码在Linux(X86平台)系统上编译生成可执行文件的详细步骤
cyclonedds里面已经有现成的实例供我们参考,在根目录下的example目录下面,我们打开此目录,此目录下有CMakeLists.txt文件以及一些其他的文档,我们需要在此目录(example目录)下编译构建出。我们可以看到cyclonedds-cxx-master包下的example目录下有很多文件,包括CMakeLists.txt等,其中我们要构建的可执行文件所需要的源文件等就在。此过程会稍微慢一点。之后会报错,如下:(图片中是c版本出现的问题截图,不影响,c++也是这个影响,问题是一样的)原创 2023-07-10 14:14:39 · 732 阅读 · 0 评论 -
CycloneDDS(C版本)开源代码在Linux(X86平台)系统上编译生成可执行文件的详细步骤
cyclonedds里面已经有现成的实例供我们参考,在根目录下的example目录下面,我们打开此目录,此目录下有CMakeLists.txt文件以及一些其他的文档,我们需要在此目录(example目录)下编译构建出。图中:cyclonedds-master是clone下来的源码包,build是在其下新建的包,终端命令的意思是在cyclonedds-master目录下新建install_dds目录作为安装目录。是CMake的内置变量,也称为预定义变量,是用来设置安装路径前缀的,即用于指定CMake在执行。原创 2023-06-02 09:05:51 · 1181 阅读 · 0 评论