在X86架构上的Linux操作系统上面进行cmake编译(CycloneDDS的C版本),在进行testing的时候需要依赖CUnit
单元测试工具,之前已经成功安装了,可以参考文章:
X86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题
这中方法中打开Cunit目录,经过make 、make install等步骤生成的可执行文件,通过file
命令可以看到其格式为:。如下图所示:
它还是属于X86架构下,我们要在ARM架构上cmake编译C语言版本的CycloneDDS代码,所以需要ARM下的CUnit执行文件,最终生成之后的结果应该是如下图所示:
下面进行CUnit单元测试工具在ARM架构Linux操作系统上的安装
下载方法已经在下面文章中给出,品一下:
X86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题
下载完成之后,如果需要将文件包从Windows传输到Linux上面请参考下面文章,看过的都说好:
Windows与Linux系统实现文件互传(通俗易懂)
下载成功之后的文件名为:CUint-2.1-3.tar.bz2
使用命令解压:tar -jxvf CUint-2.1-3.tar.bz2
解压后的文件夹名称为:CUint-2.1-3
如下图所示我将解压包放在了/home/ubuntu/Documents/ARM
下面,此时目录下面包含以下文件包:
上一步中我们解压安装包,进入CUint-2.1-3目录之后通过ll
命令看到
如下图所示:
我们通过命令打开vim ./Makefile
文件,如下图所示:
Makefile文件里面很多东西都是默认的,这样的话make编译出来的库文件都是默认Linux架构下的(X86),所以为了构建出ARM架构下的Cunit,需要改动Makefile文件,但是Makefile文件里面需要连环改动的地方太多,不好下手,所以直接使用命令行的方式来做。
使用如下命令产生configure *
执行文件:
./bootstrap --prefix=/home/ubuntu/Documents/install_ARM/ CC=/usr/local/arm/aarch64--glibc--stable-2022.03-1/bin/aarch64-linux-gcc CXX=/usr/local/arm/aarch64--glibc--stable-2022.03-1/bin/aarch64-linux-g++ --host=arm-linux
参数解释:
1、--prefix=
后面所跟的就是你所选择的安装路径
这里我选的是:/home/ubuntu/Documents/install_ARM/
2、CC
后面跟的就是我们ARM架构下的C语言编译器
CC=/usr/local/arm/aarch64--glibc--stable-2022.03-1/bin/aarch64-linux-gcc
上面的地址是Linux上交叉编译工具链的解压安装地址,c编译器使用的是工具链下bin
目录下面的aarch64-linux-gcc
3、CXX
后面跟的就是我们ARM架构下的C++的编译器
CXX=/usr/local/arm/aarch64--glibc--stable-2022.03-1/bin/aarch64-linux-g++
同理,C++编译器使用的是工具链下bin
目录下面的aarch64-linux-g++
4、--host
是指定软件运行的系统平台,如果没有指定,将会自动去搜索
--host=arm-linux
表示软件系统平台是ARM
上述指令执行完成以后显示如下图所示:
同上一步,configure*
配置默认的是gcc
编译器,我们现在是在ARM平台上进行编译,所以需要更改编译器
指令如下:
./configure --prefix=/home/ubuntu/Documents/install_ARM/ CC=/usr/local/arm/aarch64--glibc--stable-2022.03-1/bin/aarch64-linux-gcc CXX=/usr/local/arm/aarch64--glibc--stable-2022.03-1/bin/aarch64-linux-g++ --host=arm-linux
此指令的解释与第二步中相同,就不赘述啦
执行结果如下图所示:
linux终端输入:make
如下图所示:
安装完成之后,在安装路径下打开CUnit库文件查看文件类型属性
输入:file 文件名
显示结果如下图所示,说明ARM架构上CUnit搭建完成