linux(Ubuntu 20.04)安装交叉编译环境
1、查看可安装的交叉编译链版本(在用户apt软件源中检索)
apt-cache search aarch64
交给AI翻译
后面验证得知本版本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
3、测试交叉编译工具的使用
编写闪灯代码led.c
vim led.c
代码内容略
编译、赋权,运行
gcc led.c -o led_out
chmod 777 led_out
./led_out
4、查看执行文件的类型
file led_out
让AI翻译得知
执行文件为ARM aarch64位elf链接文件
5、查看系统位数
正好为64位
uname -m
只有在可执行链接文件和执行系统位数,架构相同的情况下才可执行编译的文件
其余版本的Ubuntu(32位)可能安装的交叉编译工具为:
sudo aptitude install gcc-arm-linux-gnueabihf
使用gcc-arm-linux-gnueabihf编译构建
arm-linux-gnueabihf-gcc 1.c -o aa
查看可执行文件类型
查看系统位数
uname -m
我的系统为64位ARM内核
直接执行则会提示找不到文件
这个问题可能是没有可执行文件,但在此真正原因是可执行文件的位数和系统位数对应不上,系统不允许执行。
有一些方法可以让64位系统运行32位的程序,但在此不做讨论
标签:gcc,led,linux,编译,aptitude,Ubuntu,安装,20.04 From: https://www.cnblogs.com/tianwuyvlianshui/p/18631627