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

arm64系统不支持32位的解决armel armhf

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        一台设备是arm64的,不能运行arm32程序。硬件是armV8理论上是兼容32位的。

折腾过程

        比如用ldd查看so,输出“not a dynamic executable”,不能识别为可执行代码。用file查看则可以识别为arm EABI5动态链接库,说明文件没错。

        编了一个测试程序,拿上去执行,当然执行不了,提示很奇怪,用readelf命令来查看:

root@ubuntu:~# readelf -a a | grep "Shared"Type:                              DYN (Shared object file)0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]0x00000001 (NEEDED)                     Shared library: [libdl.so.2]0x00000001 (NEEDED)                     Shared library: [libz.so.1]0x00000001 (NEEDED)                     Shared library: [libm.so.6]0x00000001 (NEEDED)                     Shared library: [librt.so.1]0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]0x00000001 (NEEDED)                     Shared library: [libc.so.6]0x00000001 (NEEDED)                     Shared library: [ld-linux-armhf.so.3]

        程序名叫“a”。

        逐个搜了一下,发现ld-linux-armhf.so 找不到,其余应该有但是是64位。

        找了另外一个交叉编译环境的ld-linux-armhf.so,复制到/lib,添加执行权限,不然执行./a提示没有权限(不是a没有权限,而是这个库没有权限)。

        再执行./a,提示
./a: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

        这就上路了,缺的这些库同样找过来,不需要放在/lib,只要能找到就行,也不需要改权限。

        把缺失的库都补上就可以了。

结论

        arm分几个版本,v8支持64位和32程序,但是设备不一定提供了32位程序支持。

        32位程序的启动器是ld-linux-armhf.so,缺这个就不能启动32位程序。这个文件必须放在/lib并具有可执行权限。

关于armel和armhf

        这是两种不同的fpu策略,不兼容,所以下载各种包的时候要注意。

检测是armel还是armhf

        执行命令:

readelf -A /proc/self/exe | grep Tag_ABI_VFP_args

        如果返回Tag_ABI_VFP_args: VFP registers就是armhf,没有返回则是armel(或者根本不是arm)

ubuntu下载交叉编译需要的包

        用包搜索可以搜索到所有架构的包,比如搜索libc:

apt-cache search libc | grep arm

        找所有arm的,返回结果:

返回结果经过了整理
libc6-arm64-cross - GNU C Library: Shared libraries (for cross-compiling)
libc6-armhf-cross - GNU C Library: Shared libraries (for cross-compiling)
libc6-armel-cross - GNU C Library: Shared libraries (for cross-compiling)
libc6-dev-arm64-cross - GNU C Library: Development Libraries and Header Files (for cross-compiling)
libc6-dev-armhf-cross - GNU C Library: Development Libraries and Header Files (for cross-compiling)
libc6-dev-armel-cross - GNU C Library: Development Libraries and Header Files (for cross-compiling)
linux-libc-dev-arm64-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-armhf-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-armel-cross - Linux Kernel Headers for development (for cross-compiling)
libc6-dbg-arm64-cross - GNU C Library: detached debugging symbols (for cross-compiling)
libc6-dbg-armel-cross - GNU C Library: detached debugging symbols (for cross-compiling)
libc6-dbg-armhf-cross - GNU C Library: detached debugging symbols (for cross-compiling)
libc6-armel-armhf-cross - Dummy package to get libc6:armel installed
libc6-armhf-armel-cross - Dummy package to get libc6:armhf installed
libc6-dev-armel-armhf-cross - Dummy package to get libc6-dev:armel installed
libc6-dev-armhf-armel-cross - Dummy package to get libc6-dev:armhf installed

        很明显,都分为arm64、armel、armhf三种。 

        安装后的目录在/usr/arm......,找到需要的用就可以了。

        直接指定架构的安装方法:

        sudo apt install libc6:armhf libstdc++6:armhf
        这样就会有ld-linux-armhf.so这个动态库了,应该可以跑32位的程序了。


(这里是文档结束)

相关文章:

arm64系统不支持32位的解决armel armhf

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...

【毕业设计】工具大礼包之『Maven3.6.3安装与配置』

系统版本 电脑系统:Windows 10 一.Maven下载 🎯 统一版本 apache-maven-3.6.3,下面两种下载方式2选1即可 1.官网直下 官网下载地址 https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/ 找到apache-maven-3.6.3-bin.zip 云盘…...

gin入门教程(9):路由分组与路由版本控制

在使用 Gin 框架构建 RESTful API 时,路由分组与版本控制是一种常见的实践,可以帮助你更好地管理不同版本的 API。下面是如何在 Gin 中实现路由分组和版本控制的示例。 目录结构 /hello-gin │ ├── cmd/ │ └── main.go ├── api/ │ ├── v1/ │ │ └─…...

rt-thread移植SystemView中遇到的问题

源代码地址dujunqiu/SystemView 我使用的rt-thread版本是5.2.0,应该是rt-thread适配的还有点问题 报错处理 1:warning: #223-D: function “typeof” declared implicitly 如下 typedef 的warning是C99规范没有typedef的定义,需要在keii中…...

【C++STL】list的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 一、三个类与成员函数接口 在list.…...

以30个面试问题和案例为导向:全面解析 Java Servlet是什么?基本概念、实现原理、生命周期、类结构、请求与响应的处理机制,以及性能优化和安全性管理

Servlet 是 Java Web 开发的核心组件之一,负责处理客户端请求并生成动态响应。本文将深入探讨 Servlet 的基本概念、实现原理、生命周期、类结构、请求与响应的处理机制,以及性能优化和安全性管理,帮助开发者从多方面掌握 Servlet。 文章目录…...

MFC小游戏设计

框架: 各个界面: 用户: 登录注册:账号和密码(昵称) 主菜单:各种游戏,查看自己信息(积分,装备【游戏数据】),退出 游戏界面&#…...

[漏洞挖掘与防护] 04.Windows系统安全缺陷之5次Shift漏洞启动计算机机理分析

这是作者新开的一个专栏——“漏洞挖掘与防护”,前期会复现各种经典和最新漏洞,并总结防护技巧;后期尝试从零学习漏洞挖掘技术,包括Web漏洞和二进制及IOT相关漏洞,以及Fuzzing技术。新的征程,新的开启,漫漫长征路,偏向虎山行。享受过程,感谢您的陪伴,一起加油~ 欢迎关…...

​手机极简待办app哪款好用?

在快节奏的现代生活中,我们常常需要处理大量的任务和信息,这时候一款好用的极简待办软件就显得尤为重要。它们不仅能帮助我们记录和管理待办事项,还能提高我们的工作效率和生活质量。 在众多的待办软件中,敬业签是一款非常受欢迎…...

SpringBoot高级-底层原理

目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…...

LabVIEW提高开发效率技巧----插入式架构

随着LabVIEW项目规模的扩大和系统复杂性的增加,传统的单一代码架构难以应对后期维护和功能扩展的需求。插入式架构(Plug-In Architecture)作为一种模块化设计方式,通过动态加载和运行子VI,使系统功能更加灵活、模块化&…...

MySQL COUNT(*)、COUNT(1)、COUNT(id)、COUNT(字段)效果及性能

文章目录 前言COUNT(exper)COUNT(*)优化COUNT(*) 与COUNT(1) COUNT(1)COUNT(id)COUNT(字段)总结参考 前言 业务开发中,我们经常要使用count做一些数据统计。今天根据MySQL5.7官方文档及丁奇老师的MySQL45讲,介绍一下COUNT(*)、COUNT(1)、COUNT(id)、COU…...

webpack4 - 动态导入文件 dynamic-import 报错的解决方法

介绍 webpack4动态导入文件报错,按照错误提示安装了插件,但未果。。 最后查到一个可行方案,记录如下。 1.通过懒加载的方式动态引入文件 const router new Router({routes: [{path: /home,name: Home,component: () >import(./views/h…...

【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (四):状态码的使用

本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师) 由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序&#xff0…...

springboot061基于B2B平台的医疗病历交互系统(论文+源码)_kaic

摘 要 进入21世纪,计算机技术迅速向着网络化的、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息的新一代网络版应用软件,形成了信息化的社会。信息化社会的形成和微电子技术日新月异的发展&…...

基于FFT + CNN -Transformer时域、频域特征融合的电能质量扰动识别模型

往期精彩内容: Python-电能质量扰动信号数据介绍与分类-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer的一…...

JAVA开发环境:IntelliJ IDEA、Java JDK、Maven 安装配置

一、安装IntelliJ IDEA 准备安装包 通过百度网盘分享的文件:idea2023.2U**.zip 链接:https://pan.baidu.com/s/1NB04A-jMXhZKsewYshGt-Q 提取码:oeft 安装 IntelliJ IDEA (1)、解压,安装文件如下&#…...

鸿蒙软件开发中常见的如何快速自动生成二维码?QRCode组件

QRCode 用于显示单个二维码的组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 二维码组件的像素点数量与内容有关,当组件尺寸过小时,可能出现无法展示内容的情况&…...

鸿蒙HarmonyOS NEXT 5.0开发(2)—— ArkUI布局组件

文章目录 布局Column:从上往下的布局Row:从左往右的布局Stack:堆叠布局Flex:自动换行或列 组件Swiper各种选择组件 华为官方教程B站视频教程 布局 主轴和交叉轴的概念: 对于Column布局而言,主轴是垂直方…...

【openGauss】OPENGAUSS/POSTGRESQL 中float类型到int类型的隐式转换

下面这条sql在oracle和POSTGRESQL/OPENGAUSS中的查询结果不一致 select cast(cast(0.5 as float) as integer);在oracle中返回1,在openGauss中返回0,咋一看好像是openGauss中使用了截断的方式,但是如果执行 select cast(cast(1.5 as float) as integ…...

Docker:安装 Syslog-ng 的技术指南

1、简述 Syslog-ng 是一种流行的日志管理工具,能够集中处理和分析日志。通过 Docker 安装 Syslog-ng 可以简化部署和管理过程。本文将介绍如何使用 Docker 安装 Syslog-ng,并提供一个 Java 示例来展示如何将日志发送到 Syslog-ng。 2、安装 2.1 创建…...

即插即用的3D神经元注意算法!

本文所涉及所有资源均在 传知代码平台 可获取。 目录 3D神经元注意力:为每一个神经元分配权重!(算法) 一、概述 二、研究背景 三、主要贡献 四、模型结构和代码 五、数据集介绍 六、性能展示 六、复现过程 七、运行过程 SimAM总结…...

FPGA 蜂鸣器 音乐播放器

点击: FPGA 蜂鸣器音乐播放器 基于FPGA的beep音乐播放器设计 FPGA(Field Programmable Gate Array)蜂鸣器音乐播放器是一个将FPGA编程用于控制蜂鸣器播放音乐的设备。下面是一个简单的实现步骤和思路: 一、硬件准备 FPGA开发板…...

前端-基础CSS总结常用

1.书写位置:title 标签下方添加 style 双标签,style 标签里面书写 CSS 代码。 <title>CSS 初体验</title> <style>/* 选择器 { } */p {/* CSS 属性 */color: red;} </style><p>体验 CSS</p> <link rel="stylesheet" href=…...

Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)

coppelia sim[V-REP]仿真实现 机器人于3D相机手眼标定与实时视觉追踪 一 标定板的制作生成标定的PDF文件PDF转为图像格式图像加载到仿真中 二 仿真场景设置加载机器人加载的控制dummy ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b48549d355d8441d8dfc20bc7ba7196…...

CSS常见面试题

&#x1f3af;CSS常见面试题 1.CSS的盒模型2.CSS选择器的优先级3.隐藏元素的方法有哪些&#xff1f;4.px和rem的区别是什么&#xff1f;5.重绘排版有什么区别&#xff1f;6.让一个元素水平垂直居中的方式有哪些&#xff1f;7.CSS的哪些属性可以继承&#xff1f;哪些不可以继承&…...

ChatGPT实现旅游推荐微信小程序

随着旅游行业的快速发展&#xff0c;个性化推荐已成为提升用户体验的重要手段。通过AI技术&#xff0c;提供一个智能旅游推荐小程序&#xff0c;使用户能够轻松获取定制化的旅行建议。 项目概述 项目目标 开发一个AI旅游推荐小程序&#xff0c;基于用户输入的旅行偏好&#…...

基于单片机的智能小区门禁系统设计(论文+源码)

1总体架构 智能小区门禁系统以STM32单片机和WiFi技术为核心&#xff0c;STM32单片机作为主控单元&#xff0c;通过WiFi模块实现与手机APP的连接&#xff0c;构建整个门禁系统。系统硬件包括RFID模块、指纹识别模块、显示屏、按键以及继电器。通过RFID绑定IC卡、APP面部识别、指…...

stm32F103 实现呼吸灯效果

目录 硬件连接 软件实现步骤 初始化系统时钟。 配置 GPIO 引脚。 配置定时器以生成 PWM 信号。 在主循环中调整 PWM 占空比以实现呼吸效果。 示例代码 1. 初始化系统时钟 2. 配置 GPIO 引脚 3. 配置定时器以生成 PWM 信号 4. 在主循环中调整 PWM 占空比以实现呼吸效…...

SAP 为 Copilot Joule 增添协作功能

在最新的SAP TechEd大会上&#xff0c;SAP发布了一系列创新功能&#xff0c;旨在扩展其AI平台Joule的能力&#xff0c;同时推出了其他工具&#xff0c;以提高企业效率并为开发人员提供更多支持。这些创新不仅将推动AI驱动的业务转型&#xff0c;还将加强数据的利用和简化开发流…...

企业网页有免费的吗/做关键词优化的公司

如何进行数据库&#xff0c;比如ORACLE&#xff0c;SQL SERVER的逆向工程&#xff0c;将数据库导入到PowerDesigner中 Oracle的反向工程就是指将Oracle中的数据库&#xff0c;当然也可以是SQL Server中的数据库导入到PD中&#xff0c;这个需要建立一个数据库的链接&#xff0c;…...

大型b2b网站开发/个人免费开发app

在做项目过程&#xff0c;出现一错误如下&#xff1a; Hibernate异常No row with thegiven identifier exists 。 想必大家也能猜出其含义&#xff1a;不存在给出的标识符相对应的行。 这种错误经常出现在主外键关联的情况。 经过分析&#xff0c;本质的原因如下&#xff1a;外…...

静态网站建设/做销售最挣钱的10个行业

3 后台分类管理 3.1概述 到这里就开始讲解功能开发了。 开发整站的顺序&#xff0c;通常来说还是按照依赖性来进行&#xff0c;前端需要的数据&#xff0c;都要先通过后台的功能维护在数据库中&#xff0c;才可以拿到。 所以&#xff0c;先进行后台功能的开发&#xff0c;然后…...

厦门专业建站系统制作公司/北京做网站推广

本节书摘来华章计算机《电路分析导论&#xff08;原书第12版&#xff09;》一书中的第2章 &#xff0c;第2.4节&#xff0c;&#xff08;美&#xff09; Robert L.Boylestad 著 陈希有 张新燕 李冠林 等译更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.4 电流…...

网站建设和运行费用/seo优化外包公司

接下去要分别分析下这几个文件&#xff1a;hw_config.c&#xff1a; 这个文件主要是配置一些跟板载及系统相关的代码&#xff0c;比如说USB系统时钟配置&#xff0c;上拉电阻引脚及LED灯配置&#xff0c;还有USB的中断灯。主要的函数如下&#xff1a; void Set_System(void); …...

学网站建设培训班/做网上推广

最近在看effective-python&#xff0c;第二章函数中提到了优先排序的概念&#xff0c;具体代码如下&#xff1a;values [1, 5, 3, 9, 7, 4, 2, 8, 6]group [7, 9]def sort_priority(values, group):def helper(x):if x in group:return (0, x)return (1, x)values.sort(keyhe…...