arm-linux-gcc是不是gcc加上arm相关的参数
呵呵 兄台 你老有才了!!!回复 5# jzhang918
gcc的所谓canonical system name的形式如下:
CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM或 CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
arm-linux-gcc的名字对应了arm CPU_TYPE 和 linux OPERATING_SYSTEM
缺省的gcc应该是指本地编译器,如果在configure时,通过--target=arm-linux指定目标机,则会构建arm-linux-gcc。
可以运行config.guess来看一下本地gcc的canonical system name,比如:
$ svn-gcc/trunk/config.guessi686-pc-linux-gnu
区别就是:同样的C文件,二个编译器,生成的二进制文件不一样。一个是按X86的机器码(或者CPU指令)所生成的二进制文件。一个是按照ARM的机器码(CPU指令)所生成的二进制文件。
他们都是C的编译器,gcc是将代码编译成在普通PC上,目标CPU是X86架构,arm-linux-gcc则把代码编译成在嵌入式 ...五岳之巅 发表于 2010-03-26 10:54
他们都是C的编译器,gcc是将代码编译成在普通PC上,目标CPU是X86架构,arm-linux-gcc则把代码编译成在嵌入式设备如手机,开发板上运行的程序,目标CPU是arm架构。不一样的CPU指令不同,在PC上的程序不能在手机里直接运行。
回复 1# jronald
你们都错啦。arm-linux-gcc和gcc的差别是arm-linux-gcc比gcc多了arm-linux-。
arm-linux-gcc、gcc的主要差别我个人认为应该是编译出来的可执行文件所适应的体系结构不同。 arm-linux-gcc编译出来的可执行文件是在arm体系结构上使用的。而gcc编译出来的可执行文件是在x86体系结构(也就是传统的PC)下使用的。
lz可以做个试验,用gcc编译出的可执行文件在PC上可以运行,这个就不用做试验了。但是如果lz用arm-linux-gcc编译出一个可执行文件,那么在PC上是不能运行的。
本人系一菜鸟,所以解答不一定正确,希望有大虾指正。
arm-linux-gcc是不是gcc加上arm相关的参数jronald 发表于 2010-03-18 22:50
不知道我有没有误解lz的意思啊,且先瞎解释一番:
如果lz所指的arm-linux-gcc和gcc是在同一平台上使用同一版本的gcc源码生成的gcc,那么此gcc和arm-linux-gcc应该是一样的,同一个目标码的不同名字而已!
04年注册的。。。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(9)
呵呵 兄台 你老有才了!!!回复 5# jzhang918
gcc的所谓canonical system name的形式如下:
CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
或
CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
arm-linux-gcc的名字对应了arm CPU_TYPE 和 linux OPERATING_SYSTEM
缺省的gcc应该是指本地编译器,如果在configure时,通过--target=arm-linux指定目标机,则会构建arm-linux-gcc。
可以运行config.guess来看一下本地gcc的canonical system name,比如:
$ svn-gcc/trunk/config.guess
i686-pc-linux-gnu
区别就是:同样的C文件,二个编译器,生成的二进制文件不一样。一个是按X86的机器码(或者CPU指令)所生成的二进制文件。一个是按照ARM的机器码(CPU指令)所生成的二进制文件。
他们都是C的编译器,gcc是将代码编译成在普通PC上,目标CPU是X86架构,arm-linux-gcc则把代码编译成在嵌入式设备如手机,开发板上运行的程序,目标CPU是arm架构。
不一样的CPU指令不同,在PC上的程序不能在手机里直接运行。
回复 1# jronald
你们都错啦。arm-linux-gcc和gcc的差别是arm-linux-gcc比gcc多了arm-linux-。
arm-linux-gcc、gcc的主要差别我个人认为应该是编译出来的可执行文件所适应的体系结构不同。
arm-linux-gcc编译出来的可执行文件是在arm体系结构上使用的。而gcc编译出来的可执行文件是在x86体系结构(也就是传统的PC)下使用的。
lz可以做个试验,用gcc编译出的可执行文件在PC上可以运行,这个就不用做试验了。但是如果lz用arm-linux-gcc编译出一个可执行文件,那么在PC上是不能运行的。
本人系一菜鸟,所以解答不一定正确,希望有大虾指正。
不知道我有没有误解lz的意思啊,且先瞎解释一番:
如果lz所指的arm-linux-gcc和gcc是在同一平台上使用同一版本的gcc源码生成的gcc,那么此gcc和arm-linux-gcc应该是一样的,同一个目标码的不同名字而已!
04年注册的。。。