gcc和arm-linux-gcc是啥关系?区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcc和arm-linux-gcc是啥关系?区别是啥?相关的知识,希望对你有一定的参考价值。

gcc是linux下的c语言编译器,arm-linux-gcc是交叉编译,一直搞不懂他俩什么关系,我要学习嵌入式,下载那个软件好呢?谢谢!

gcc是linux系统下面用来将代码编译成一个可执行程序的手段。编译出来的是适用于linux系统的可执行二进制文件。可执行程序其实就是一堆的0101二进制机器码。这些机器码代表什么含义只有机器本身能理解。所以你用gcc编译出来的可执行程序只有在linux系统下面可以运行。举个例子你的可执行程序里面有一句01011.这句在linux下面可能是吃饭的意思,但是在windows下面可能01011是撒尿的意思。那你说linux的可执行程序放在window下面能正常运行吗?肯定不能嘛。你要的目的是吃饭,它帮你执行撒尿很显然就不对了。同样的可能01011在ARM下面的意思是睡觉。不同系统的机器码含义是不一样的。所以你在linux系统下面写的代码要怎样才能在ARM系统上面跑呢。这就需要用到交叉编译。arm-linux-gcc是什么意思?就是告诉你的编译器,我编写的环境是linux,但是我希望生成的可执行程序是在arm上面跑的。这就是交叉编译。编写环境和执行环境分离的一种手段。 参考技术A gcc编译出来的程序在本地执行
arm-linux-gcc编译出来的程序在目标机(ARM平台)上执行

嵌入式应该用交叉编译器(如果不是在ARM本身上开发)本回答被提问者采纳

以上是关于gcc和arm-linux-gcc是啥关系?区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

请教arm-linux-gcc 版本与QT版本和linux内核的关系!

arm-linux-gcc交叉编译是静态编译还是动态的

openjdk是啥,libgcj是啥,它们有啥区别。

arm-linux-gcc交叉编译器的制作,以及版本选择问题。

arm-linux-4.4.1.tar.gz 和 arm-linux-gcc-4.3.2.tgz 有啥区别

Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解