首页 > 系统相关 >linux(Ubuntu 20.04)安装交叉编译环境

linux(Ubuntu 20.04)安装交叉编译环境

时间:2024-12-25 23:20:33浏览次数:3  
标签:gcc led linux 编译 aptitude Ubuntu 安装 20.04

linux(Ubuntu 20.04)安装交叉编译环境

1、查看可安装的交叉编译链版本(在用户apt软件源中检索)

apt-cache search aarch64

image-20241224140501435

交给AI翻译

image-20241224140536325

后面验证得知本版本Ubuntu20.04和我的软件源中 gcc编译出来就是ARM64位可执行文件,在此我直接

2、安装gcc

sudo apt-get install gcc

若是提示缺失依赖并无法解决依赖问题,阻止继续安装

则看下面内容:

在Ubuntu 20.04中安装build-essential时,可能会遇到依赖关系问题。这可能是由于软件包管理器无法满足build-essential的依赖关系,或者你正在使用的发行版中缺少一些必要的软件包。

解决这个问题的一种方法是安装aptitude,这是一个更强大的包管理工具!!!,它可以解决一些apt-get无法处理的依赖关系问题。你可以使用以下命令安装aptitude:

sudo apt-get install aptitude

然后,使用aptitude来安装build-essential:

sudo aptitude install gcc

在安装过程中,aptitude可能会提出一些解决方案,例如降级或删除某些软件包。你应该仔细阅读这些选项,并选择最适合你的情况的解决方案。如果你不确定,可以选择保持现状,直到你找到更好的解决方案。

另一种可能的解决方案是更换软件源。如果你使用的软件源无法提供所有必要的软件包,或者提供的软件包版本不正确,那么你可能需要更换到一个更可靠的软件源。例如,你可以将软件源更换为清华大学的镜像源,然后再次尝试安装gcc。

请注意,这些解决方案可能需要管理员权限。如果你没有管理员权限,你可能需要联系你的系统管理员。

安装结束后查看gcc版本验证是否安装成功

gcc --version

image-20241225225457885

3、测试交叉编译工具的使用

编写闪灯代码led.c

vim led.c

代码内容略

编译、赋权,运行

gcc led.c -o led_out

chmod 777 led_out

./led_out

4、查看执行文件的类型

file led_out

image-20241225203030863

让AI翻译得知

image-20241225203435187

执行文件为ARM aarch64位elf链接文件

5、查看系统位数

正好为64位

uname -m

image-20241225204118621

只有在可执行链接文件和执行系统位数,架构相同的情况下才可执行编译的文件


其余版本的Ubuntu(32位)可能安装的交叉编译工具为:

 sudo aptitude install gcc-arm-linux-gnueabihf

使用gcc-arm-linux-gnueabihf编译构建

arm-linux-gnueabihf-gcc 1.c -o aa

查看可执行文件类型

image-20241225132549611

查看系统位数

uname -m

image-20241225132429476

我的系统为64位ARM内核

直接执行则会提示找不到文件

image-20241225224742744

这个问题可能是没有可执行文件,但在此真正原因是可执行文件的位数和系统位数对应不上,系统不允许执行。

有一些方法可以让64位系统运行32位的程序,但在此不做讨论

标签:gcc,led,linux,编译,aptitude,Ubuntu,安装,20.04
From: https://www.cnblogs.com/tianwuyvlianshui/p/18631627

相关文章

  • Linux操作系统基础
    1、linux是什么linux是unix操作系统支持多任务、多线程、多cpu的操作系统2、linux是命令行的操作系统windows系统是图形化界面的操作系统windows和linux区别windows是收费的,linux是免费的windows经常有安全补丁,linux就没有,linux更安全3、linux优点......
  • Linux期末考试简答题(14道)
    1、FHS中,“/usr”目录的“include”、“src”、“share”、“local”、“lib”子目录分别有哪些用途?答:在FHS(FilesystemHierarchyStandard)中,/usr目录通常用于存储只读的、共享的用户程序和数据文件。其子目录的用途如下:(1)“/usr/include”目录用于存放C程序设计语言使用的标......
  • Linux红旗系统下修改oracle11实例名
    原数据库实例名称为:orcl 修改为 project1.查询当前设置的实例名切换到Oracle用户下su-oracle(1)查询配置的实例名称echo${ORACLE_SID}(2)查询数据库中的实例名称sqlplus/nologsql>conn/assysdbasql>selectinstancefromv$thread;2.关闭数据服务(1)关......
  • python之psutil 采集linux系统信息
    1、psutil简介psutil是一个跨平台的Python库,提供了一种方便的方法来查询系统和进程的相关信息。它可以用来获取CPU、内存、磁盘、网络等系统级的数据,适合需要对系统性能进行监控和管理的开发工作。五大主要功能:CPU信息:获取CPU使用率、核心数、频率等。内存信息:获取系......
  • nmon监控在linux环境下的安装
    nmon下载官网:https://nmon.sourceforge.io/pmwiki.php?n=Site.Download 一、前言Nmon(Nigel’sMonitor)是由IBM提供、免费监控AIX系统与Linux系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用excel分析工具(nmonanalyser)进......
  • Linux离线安装Docker
    Linux离线安装Docker查看服务器架构信息uname-m下载安装包并传输到指定服务器访问https://download.docker.com/linux/static/stable/下载对应服务器架构下的压缩包,架构目录下有对应的docker版本解压并拷贝命令#解压安装包tar-zxvfdocker-aarch64-24.0.5.tgz#将......
  • Linux常用选项之tr命令详解
    tr(translate)是Linux系统中一个非常实用的命令行工具,主要用于字符转换或删除操作。它从标准输入读取数据,执行指定的转换处理,并将结果输出到标准输出。tr命令的主要功能包括但不限于大小写转换、删除特定字符、压缩重复字符等。功能与特性字符替换:可以将一组字符替换成另一......
  • 如何在 Ubuntu 22.04 上安装和使用 Composer
    简介如果你是一名PHP开发者,想要简化你的项目依赖管理,那么Composer是一个必不可少的工具。Composer可以简化包管理,并允许你轻松地将外部库集成到你的项目中。本教程将向你展示如何在Ubuntu22.04操作系统上安装Composer,并允许你充分利用其强大的功能。首先,让我们了......
  • Linux基础——固化系统路由
    一、临时添加路由(重启network服务失效)例:方法一:routeadd-net或者-hostgw网关deveth0说明:-net要添加标准子网掩码。-host要添加主机ip可以不写子网掩码。方法二:iprouteaddip或者网段viadeveth0查看路由表:参考文档:https://blog.csdn.net/yuyuyuliang00/article/detail......
  • 图解Linux下C内存分配 by using gpt
    我们可以通过GPT来详细地图解Linux上的C内存分配。这个过程可以进一步细化,只要你愿意。最小的C代码示例以下代码使用了标准C库函数malloc分配一块内存:#include<stdlib.h>#include<stdio.h>intmain(){int*ptr=(int*)malloc(sizeof(int)*10);//分配10......