arm 交叉编译找不到so_搭建交叉编译环境并验证

2023-05-16

1. 搭建编译环境并验证

1.1 实验目的

· 掌握嵌入式开发环境、交叉编译器的搭建、安装和配置方法

· 熟悉Linux应用程序的编译、调试方法,能够验证X86平台和ARM平台的差异

1.2 实验内容

· 交叉编译器环境搭建

· 编写一个典型的Linux应用程序

· 使用GDB调试Linux程序(PC平台)

· 用Makefile编译程序

· 交叉编译Linux程序

· 对比X86平台和ARM平台

1.3 步骤与现象

· 交叉编译器环境搭建

1. 下载交叉编译工具链

交叉编译工具:gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf.tar

2. 将交叉编译工具链放到共享文件夹

3. 在/usr/local下新建文件夹arm用于存放交叉编译工具链

4. 拷贝共享文件夹中的交叉编译工具链到/usr/local/arm文件下

5. 解压交叉编译工具链

6. 查看生成的交叉编译工具链

· 设置环境变量:

1. 查看环境变量

2. 导出到环境变量

3. 在当前路径下使用arm-linux-gnueabi-gcc 编译程序

1.4 关键代码分析

· 文件名:helloworld.c

1. 安装gcc编译器 – apt install gcc

2. X86编译器gcc编译

3. 通过file 查看hellox86文件

4. Arm交叉编译 arm-linux-gnueabihf-gcc:

5. Arm交叉编译的helloarm文件不能在x86平台正确执行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arm 交叉编译找不到so_搭建交叉编译环境并验证 的相关文章

  • 小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有许多不同的 RTOS 可用于微控制器 我专门寻找支持 ARM Cortex M 处理器的 RTOS 另外 我对闭源解决方案不感兴趣 试图从网站
  • 将 GCC 内联汇编与采用立即值的指令结合使用

    问题 我正在为 ARM Cortex M3 处理器开发定制操作系统 为了与我的内核交互 用户线程必须生成 SuperVisor Call SVC 指令 以前称为 SWI 用于软件中断 该指令在ARM ARM中的定义是 这意味着该指令需要即时
  • 读取和打印手臂组件中的字符串

    我正在使用 ARMSim 刚刚开始学习汇编 所以如果我看起来一无所知 请原谅我 但我正在尝试从输入文件中读取字符串 然后将其打印到输出屏幕 到目前为止我有 equ SWI Open 0x66 open a file equ SWI Clos
  • 源和目标具有不同的 EABI 版本

    我正在尝试使用 ARM 工具链编译 so 文件 但是我不断收到这个错误 错误 源对象的 EABI 版本为 0 但目标对象的 EABI 版本为 5 我无法更改工具链中的任何内容 因为我必须使用给定的工具链 我以前从未见过这个错误 我使用了这个
  • 可以使用Visual Studio 2012构建ARM桌面程序吗?

    我正在使用 Visual Studio 2012 beta 我的桌面 win32 程序在 ARM 架构中编译得很好 升级到 Visual Studio 2012 RC 后 编译器无法工作并出现以下错误 不支持为 ARM 平台编译桌面应用程序
  • 交叉编译 Qt 4.7 时出现“非法指令”

    我已经在这个问题上苦苦挣扎了一个多星期了 但仍然找不到解决方案 我正在尝试为 ARM 设备交叉编译 Qt 4 7 嵌入式开源版本 构建过程本身可以顺利完成 但生成的二进制文件似乎包含处理器无法理解的指令 构建主机是 i386 上的 Debi
  • 有没有办法在 Xcode 4 中为 ARM 而不是 Thumb 进行编译?

    如果有很多浮点运算正在进行 Apple 建议针对 ARM 进行编译 而不是针对拇指进行编译 我的整个应用程序几乎是一个大型浮点运算 iOS 应用程序开发工作流程指南中是这样说的 iOS 设备支持两种指令集 ARM 和 Thumb Xcode
  • 如何使用 Neon SIMD 将无符号字符转换为有符号整数

    如何转换变量的数据类型uint8 t to int32 t使用霓虹灯 我找不到执行此操作的任何内在因素 假设您想要将 16 x 8 位整数的向量转换为 4 个 4 x 32 位整数的向量 您可以通过首先解压缩为 16 位 然后再次解压缩为
  • 为什么 i2c_smbus 函数不可用? (I2C——嵌入式Linux)

    有很多参考使用i2c smbus 开发嵌入式 Linux 软件时在 I2C 总线上进行通信的函数 什么时候i2c smbus函数如i2c smbus read word data在软件项目中引用了 ARM8 处理器错误 例如 i2c smb
  • 是否可以将 SpaCy 安装到 Raspberry Pi 4 Raspbian Buster

    我一整天都在安装 SpaCy sudo pip install U spacy Looking in indexes https pypi org simple https www piwheels org simple Collectin
  • 什么是遗留中断?

    我正在开发一个项目 试图弄清楚 ARM 架构的全局中断控制器中如何处理中断 我正在使用 pl390 中断控制器 我看到有一条线被称为传统中断 它绕过了分配器逻辑 假设有 2 个中断可以被编程为传统中断 任何人都可以帮助解释一下什么是遗留中断
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • ARM Cortex-M3 启动代码

    我试图了解 STM32 微控制器的 Keil realview v4 附带的初始化代码是如何工作的 具体来说 我试图了解堆栈是如何初始化的 In the 文档 http infocenter arm com help index jsp t
  • GCC:如何在 MCU 上完全禁用堆使用?

    我有一个在基于 ARM Cortex M 的 MCU 上运行并用 C 和 C 编写的应用程序 我用gcc and g 编译它并希望完全禁用任何堆使用 在 MCU 启动文件中 堆大小已设置为 0 除此之外 我还想禁止代码中意外使用堆 换句话说
  • 直接写入 ARM Cortex A8 分支预测器中的全局历史缓冲区 (GHB) 或 BTB?

    我有兴趣直接修改 Cortex A8 上的 BTB 分支目标缓冲区 和 GHB 的内容 ARM 手册上有这样的内容 要在指令端 GHB 数组中写入一项 例如 LDR R0 0x3333AAAA MCR p15 0 R0 c15 c1 0 M
  • 你好世界,裸机 Beagleboard

    我正在尝试在我的 Beagleboard xm rev 上运行 hello world 类型的程序 C 通过调用 Cputs功能来自装配 到目前为止 我一直使用这个作为参考 http wiki osdev org ARM Beagleboa
  • 将 C 函数与 ARM 汇编结合使用

    我见过人们在代码中使用 C 库中的 printf 的示例 如下所示 data balign 4 hello asciz Hello n text global main func main main ldr r0 hello msg bl
  • 在 ARM Cortex-M3 中使用 newlib 的 malloc

    我正在为 ARM Cortex M3 NXP 的 LCP17xx 创建代码 到目前为止我一直在使用静态内存 一切都运行良好 我尝试添加动态内存支持 但是一旦调用 malloc 系统就会卡住 我正在使用 gcc 为 Arm Bare Meta

随机推荐

  • NLP ---文本情感分析

    前面几节我们详细的研究了文本分析的相关算法 xff0c 本节将简单介绍一下基于文本的情感分析方面的内容 xff0c 本节更多是论述方面的内容 xff0c 这个方向的算法基本都是我们前面学过的 xff0c 原理就不详细的讲解了 xff0c 如
  • boost跨平台 c++_跨平台c++/boost/asio 简单的HTTP POST请求 客户端模型

    include include include include include usingboost asio ip tcp using std string int post const string amp host const str
  • curl初学者教程

    curl初学者教程 一 查看网页源码 直接在curl命令后加上网址 xff0c 就可以看到网页源码 我们以网址www sina com为例 xff08 选择该网址 xff0c 主要因为它的网页代码较短 xff09 xff1a curl ww
  • Ubuntu16.04编译时,‘cout’在此作用域中尚未声明(gcc和g++的区别)

    cout 在此作用域中尚未声明 的错误的解决方法 以下是几种解决方法 xff1a 首先在要包含iostream头文件 在 include下面加入 using namespace std 或者在cout cin endl等调用前加上std 编
  • c语言编写按键的中断和查询方式的区别,中断程序和查询方式的区别

    中断程序在程序开始定义中断入口地址 xff0c 初始化中必须打开中断允许位 xff0c 程序运行时不用判断溢出状态位 xff0c 溢出后硬件清零 xff1b 查询方式在程序运行时必须判断溢出状态位 xff0c 溢出后须软件清零 查询方式 x
  • c语言结构体大小端转换,数组到结构体转换和联合体与位段结合中的大小端问题...

    移植驱动代码时发现工程中使用了如下形式的代码 typedef struct BlkTestTag uint16 t m u1Var1 uint8 t reserve 2 uint32 t m u4Var2 BlkTest uint8 t t
  • 道路分割 matlab,:MATLAB差分进化算法在道路图像阈值分割中的应用7068

    xff1a MATLAB差分进化算法在道路图像阈值分割中的应用7068 盐城师范学院MATLAB差分进化算法在道路图像阈值分割中的应用摘 要文章对以MATLAB为基础的数字图像处理技术进行研究 xff0c 在这一技术主要研究了差分进化算法
  • java htmlparser 下载_htmlparser.jar下载_htmlparser.jar官方下载-太平洋下载中心

    htmlparser jar是一款十分常用的用于java开发项目研发的htmlparser jar包 下载htmlparser可以让您的Java项目开发变得更加顺畅 合理的使用htmlparser框架可以让您的工作更加顺畅 软件截图1 基本
  • python接口自动化测试

    一 以登录为例 xff0c cookie验证 1 打开登录页面 输入用户名密码 点击登录 前端进行密码加密 调用登录接口 xff0c 传入用户名和加密后的密码 和数据库进行验证 2 打开登录页面 输入用户名密码 点击登录 调用登录接口 xf
  • Android实验2:简易计算器

    1 完成一个计算器的设计 xff0c 可以以手机自带的计算器为参考 设计过程中 xff0c 注意考虑界面的美观性 xff0c 不同机型的适应性 xff0c 以及功能的完备性 2 注意结合Activity的生命周期 xff0c 考虑不同情况下
  • Android实验3:学习使用ListView

    学习使用ListView 1 实现一个列表 xff0c 其中显示班级学号姓名 xff0c 提供添加功能 xff0c 如需要删去某一项 xff0c 长按该项 xff0c 通过弹出菜单显示删除功能 MainActivity java impor
  • Android实验6:数据存储和访问

    分别使用sqlite3工具和Android代码的方式建立SQLite数据库 在数据库建立完成后 xff0c 编程实现基本的数据库添加和删除功能 创建一个学生管理的APP xff0c 基本信息包含学生姓名 xff0c 班级 xff0c 学号
  • Android实验5.1:使用线程

    package com example myapplication import android content Intent import android os Handler import android support v7 app
  • EDIMAX AC1200 Linux Driver

    使用的wifi网卡是EDIMAX AC1200 双频USB无线网卡 环境是ubuntu 20 04 xff0c 使用计算机为Khadas VIM3 安装过程如下 xff1a Prepare required packages sudo ap
  • 解决树莓派3b+刷mate彩虹屏的方法(亲测可用)

    官方说明要改很多东西 xff0c 麻烦且不实用 其实就是启动文件引导有问题 我们只要将原版系统boot里的四个文件复制到mate的boot里即可 见下图 然后启动树莓派 成功 文件下载地址 https download csdn net d
  • VSCode编写C++程序的配置方法

    1 安装mingw xff08 自行下载 xff0c 配制环境变量 xff09 xff0c 使用gcc v检测是否安装成功 2 VScode 文件 打开文件夹 xff0c 选择一个文件夹作为工作区 3 工作区内新建一个文件夹 vscode
  • Jetson nano 系统安装

    Contents Jetson Nano在 EMMC 上安装镜像U 盘启动和 TF 卡启动U 盘启动 复制 eMMC 上系统 TF 卡启动 设置远程登录系统SDK 安装使用 SDK Manager 安装使用指令安装 Linux 操作基础文件
  • NVIDIA Jetson Xavier NX 串口通讯(发送YOLO检测结果)(记录)

    目录 NVIDIA Jetson Xavier NX串口cutecom助手测试发送YOLO检测结果 开始之前声明 xff1a 本文在NVIDIA Jetson Xavier NX上跑YOLOv4模型 xff0c 配合ZED相机实时检测 xf
  • Cmake Error遇到的问题及解决

    qt build 在网上看了好多解决办法 xff0c 好多说添加路径的 xff0c 但是都没有解决我的问题 xff0c 看到有教程说在src路径下 catkin create qt pkg testgui xff0c 也报错了 xff0c
  • arm 交叉编译找不到so_搭建交叉编译环境并验证

    1 搭建编译环境并验证 1 1 实验目的 掌握嵌入式开发环境 交叉编译器的搭建 安装和配置方法 熟悉Linux应用程序的编译 调试方法 xff0c 能够验证X86平台和ARM平台的差异 1 2 实验内容 交叉编译器环境搭建 编写一个典型的L