当前位置: 首页 > news >正文

CUnit在ARM平台上的离线搭建(让CUnit编译安装成功之后的可执行文件.so变成ARM下的—ARM aarch64)(实用篇)

  • 前言:
  • 1 CUint-2.1-3.tar.bz2压缩安装包下载并解压
  • 2 进入CUint-2.1-3目录并且通过指令./bootstrap*产生configure *执行文件
  • 3 执行./configure*命令
  • 4 make编译
  • 5 make install 安装

前言:

在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操作系统上的安装

1 CUint-2.1-3.tar.bz2压缩安装包下载并解压

下载方法已经在下面文章中给出,品一下:
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下面,此时目录下面包含以下文件包:

请添加图片描述

2 进入CUint-2.1-3目录并且通过指令./bootstrap*产生configure *执行文件

上一步中我们解压安装包,进入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文件
请添加图片描述

3 执行./configure*命令

同上一步,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

此指令的解释与第二步中相同,就不赘述啦

执行结果如下图所示:

请添加图片描述

4 make编译

linux终端输入:make

如下图所示:

请添加图片描述

请添加图片描述

5 make install 安装

请添加图片描述

安装完成之后,在安装路径下打开CUnit库文件查看文件类型属性

输入:file 文件名

显示结果如下图所示,说明ARM架构上CUnit搭建完成

请添加图片描述
完结撒花~~~~

http://www.lryc.cn/news/94712.html

相关文章:

  • 整数序列(山东大学考研机试题)
  • k8s集群安装
  • 【webrtc】ProcessThreadAttached
  • Orange pi3初调试
  • 手机里的视频怎么转换成MP4格式?简单的转换方法分享
  • Matlab数学建模实战——(Lokta-Volterra掠食者-猎物方程)
  • windows下软件推荐
  • SQlite数据库
  • Doris-问题
  • 什么是OA系统,什么是工单系统,有啥区别?
  • DDoS攻击:网络安全的威胁
  • docker版jxTMS使用指南:device的调整
  • AI智能语音机器人的功能和作用都有哪些?
  • vue3+vite+Ts 基于Antv/x6 绘制流程图
  • sys V 进程间通信之消息队列
  • Android 报错,闪退(错误)日志保存到手机内存中,以文本文件的形式保存
  • flutter聊天界面-加号【➕】更多展开相机、相册等操作Panel
  • 浅析泵站自动化技术的发展趋势
  • 5.4.1 虚拟专用网VPN
  • 第42节:cesium 火焰效果(含源码+视频)
  • MySQL基础篇第5章(排序与分页)
  • ​LeetCode解法汇总2679. 矩阵中的和
  • flask-apscheduler实现定时任务
  • FPGA纯verilog实现UDP协议栈,sgmii接口SFP光口收发,提供工程源码和技术支持
  • 【Python入门系列】第十五篇:Python数据可视化和图表绘制
  • isBlank函数和isEmpty函数的区别
  • 「SQL面试题库」 No_121 The Most Recent Three Orders
  • 【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 7 日论文合集)
  • 直流运算放大器-----仪表放大器(三)
  • 【Zookeeper】终端操作常用命令