+ -
当前位置:首页 → 问答吧 → ARM交叉编译器的问题?

ARM交叉编译器的问题?

时间:2006-06-12

来源:互联网

初次接触嵌入式的开发,有一个交叉编译环境的问题一直让我比较困惑!一般来说交叉编译器是针对哪一种硬件平台而言,比如说是ARM、MIPS、PowerPC等。
但是我看到同一个平台在不同的操作系统(如linux和uclinux)也会有不同的交叉编译安装包!他们的交叉编译器可以通用吗?
比如说我有一个ARM9的硬件平台跑的uclinux操作系统,我用linux基于ARM的交叉编译器编译的应用程序,可以在基于ARM平台的Uclinux的操作系统里运行吗?或者说我用uclinux基于ARM的交叉编译器生成的应用程序,也能运行在基于ARM平台的linux操作系统吗?如果可以,那么这两个交叉编译器有什么具体的区别能?
望高手指点!      

作者: redempire   发布时间: 2006-06-12

可能没有区别,
uclinux 的编译器与arm-linux的编译器
因该是在glibc的库的连接上的区别,
如果纯粹编译应该是一样的      

作者: hhq2005   发布时间: 2006-06-12

如果不考虑库的问题,那么Arm-elf-tools-20030314.sh(uclinux提供的交叉编译器)cross-2.95.3.tar.bz2(ARM-linux提供的交叉编译器)应该都可以用了!      

作者: redempire   发布时间: 2006-06-13

arm-linux是带MMU,uclinux是不带的。
arm-linux 和 arm-elf生成的目标代码应该是不同的吧      

作者: duke_zero   发布时间: 2006-06-16

MMU只是说操作是否支持,跟编译器应该是没关系的!我现在想问的是两个交叉编译器的区别?      

作者: redempire   发布时间: 2006-06-19

还是有关系的.
1、arm-elf 链接的库为uclibc,而arm-linux链接的为glibc。uclibc主要是为不支持MMU的系统开发的。
2、不支持MMU比较有利于XIP。(可理解为以较少的RAM在Flash直接运行内核)      

作者: duke_zero   发布时间: 2006-06-19

target一样就可以
host可以不一样

这是个命名规范
xx--yy--zz
xx是体系
yy是名字
zz是平台

诸如i386-redhat-linux

有的可能还有格式elf,coff,xip什么的      

作者: AIKO_sex   发布时间: 2006-06-20