ARM交叉编译工具

本文介绍了ARM交叉编译工具的概念,解释了在X86平台编译ARM程序的需求。文章通过一个使用aarch64-none-elf-gcc编译Linux应用时遇到的错误,展示了交叉编译工具链的组成部分,并指出该工具链适用于编译U-Boot等,而编译应用程序应使用aarch64-linux-gnu-gcc。文章还提到了工具链的命名规则,分类和主流提供商,以及不同工具链的适用场景。
摘要由CSDN通过智能技术生成

什么是交叉编译工具?

交叉编译就是指在一种平台架构上编译在另外一种平台体系架构运行的程序。常见的是在X86的服务器上编译ARM linux的程序,或者windows环境下编译ARM MCU的程序。

交叉编译工具链是一套综合开发工具,包括编译器、链接器等其他辅助工具。平时工作一般不会要求自己制作交叉编译工具,会使用厂商提供的现成的(编译过程相对复杂,可以参考buildroot)。

 

这次碰到的问题是在使用aarm64-none-elf-gcc编译linux的应用程序时报错:

/opt/plnx/plnx-v17.3/tools/linux-i386/aarch64-none-elf/bin/../aarch64-none-elf/libc/usr/lib/crt0.o: In function `_start':
/proj/esdt_sdk/gnu_abe/ABE/builds/lin/arm/arm-none-eabi/snapshots/newlib-newlib-2_4_0/libgloss/aarch64/crt0.S:148: undefined reference to `initialise_monitor_handles'
/opt/plnx/plnx-v17.3/tools/linux-i386/aarch64-none-elf/bin/../aarch64-none-elf/libc/usr/lib/libc.a(lib_a-exit.o): In function `exit':
/proj/esdt_sdk/gnu_abe/ABE/builds/lin/arm/arm-none-eabi/snapshots/newlib-newlib-2_4_0/newlib/libc/stdlib/exit.c:70: undefined reference to `_exit'
/opt/plnx/plnx-v17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值