1 X86架构上的编译
1.1 C版Cyclonedds源码编译
没有什么特别注意的事项,只是在debug版本构建和testing的时候需要安装X86架构上的Cunit单元测试工具
安装过程也较为简单,官网下载安装包,拉到linux系统解压之后,进行make编译即可
编译完成之后需要将生成的静态或者动态库文件放置在/usr/local/lib
下面
编译的时候会自动去这个地方查找库文件(隶属于X86架构的库文件)
在最后的roundtrip示例构建的时候,需要注意的是:要将
X86下C的安装位置利用-D CMAKE_PREFIX_PATH=
加进来
1.2 C++版Cyclonedds源码编译
同样需要注意的就是Ctest在X86架构上的安装,安装方法与上面CUnit安装同理。
并且还要注意的是在安装的时候,因为C语言是C++的基础,所以在C++版本cmake过程中需要用到C版本的库文件,所以需要在cmake的时候引入C语言的安装地址
2 ARM架构上的编译
首先要在默认X86架构的Linux系统上安装交叉编译工具链,就是解压即可
还有就是在AMR下编译的时候
idlc_generate指令是不可用的,需要手动通过idlc文件生成源文件和库文件
2.1 C版Cyclonedds源码编译
需要注意的点有以下几个:
cmake的时候
1、要引入arm.cmake文件的存放地址
2、安装位置
3、将SSL设置为NO不启用,否则还有安装很多东西
debug版本构建的时候
C语言的testing 需要依赖于ctest单元测试工具,虽然之前已经安装过了,但它是X86架构下的,现在需要重新安装ARM架构下的
2.2 C++版Cyclonedds源码编译
Cmake的时候需要引入arm.cmake文件地址
并且要还要引入ARM下C编译生成库文件的支持
所以需要指向ARM_C的安装位置
同样SSL还是不启动
3 多线程编译
可以使用例如make -j4
指令进行多项成编译
-j4
是 make
命令的一个选项,它指定了并行编译的线程数。这个选项告诉 make 在编译源码时同时使用多个线程,以加快编译速度。
原理是这样的:在编译大型项目时,通常有很多个源文件需要编译。传统的串行编译方式会逐个编译每个源文件,这样需要的时间较长。而使用 -j4 选项后,make 会同时启动多个线程,并行地编译多个源文件,从而提高了编译速度。
-j4 中的数字 “4” 表示同时启动的线程数,你可以根据你的系统配置和 CPU 核心数来调整这个数字。通常可以选择与 CPU 核心数相近的值,以充分利用系统资源。
在大部分的 Linux 或 macOS 系统中,make 工具已经原生支持并行编译,不需要安装额外的插件或工具。但在 Windows 系统中,默认的 make 工具不支持并行编译,需要安装 GNU 版本的 make(例如 MinGW
或 Cygwin)来获得 -j4 选项的支持。
注意:
1、所有的ARM交叉编译的东西可以都放在一个文件包下面
2、缺什么我们就补什么,缺少C/C++的库文件就直接拷贝过来或者export LD_LIBRARY_PATH。缺啥C/C++的.cmake文件就直接把安装位置引过来
3、第一步cmake成功了之后,如果对源文件进行了修改,不用重新cmake,直接重新make就可以了