LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1738|回复: 15

先有鸡还是先有蛋?为什么GCC 的源代码是C语言?

[复制链接]
发表于 2008-4-1 23:17:53 | 显示全部楼层 |阅读模式
最近下载了GCC的源代码,突然发现竟然全部是C语言??
我很奇怪,理论上GCC的一个重要功能就是编译C 语言啊?
GCC 如果是用C 写的,那么用什么来编译GCC的源代码?

虽然我的机器上有编译好的 gcc可以直接使用,
但是如果没有蛋,哪里来的鸡啊?
请前辈指点!!谢谢!!!
发表于 2008-4-2 00:38:23 | 显示全部楼层
第一代的C编译器不是用C写的,不就可以了。
GCC可以靠别的编译器去编译得到。
又或者,第一个GCC是别的语言后来改用C,前一代编译后一代。

都一个道理。
回复 支持 反对

使用道具 举报

发表于 2008-4-2 00:42:48 | 显示全部楼层
哈哈,人不也是人生的嘛,按照LZ的理论……
哈哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-2 09:10:11 | 显示全部楼层
那要是如ARM之类的厂商开发了一种新的CPU架构
这时候找不到已有的GCC编译器,是不是只能从汇编开始来一个最简单的
然后把自己搞大???
回复 支持 反对

使用道具 举报

发表于 2008-4-2 09:37:18 | 显示全部楼层
世界上又不是只有一种 C 语言编译器; 一种编译器又不是规定自始至终只能用一种编译器编译; 我们现在见到的编译器又不是自出生开始就是这个样子...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-2 11:18:19 | 显示全部楼层
我的意思是我如果自己设计一款CPU
希望对它加入C语言的支持,
该怎么着手呢?
回复 支持 反对

使用道具 举报

发表于 2008-4-2 12:28:29 | 显示全部楼层
作为一个例子, 楼主可以去找找 psp sdk, 当然是民间的, 它为原始的工具链打了一些补丁以实现对 psp 的支持, 楼主可以参考
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-2 12:39:47 | 显示全部楼层
例如ARM、MIPS之类的CPU
难道他们都是用汇编搞出一个功能简单的C编译器,
然后自己“那个”自己出来的??
回复 支持 反对

使用道具 举报

发表于 2008-4-2 13:22:25 | 显示全部楼层
我终于想明白楼主不理解的是什么了, 楼主不知道 "交叉编译" 这样一个概念吧, 去查查, 问题就明白了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-2 15:28:32 | 显示全部楼层
首先感谢楼上!

交叉编译大致指的是在一个平台上编译出另一个平台能够运行的东东吧。。。

但是似乎有个前提,那就是交叉编译的软件都是固定的,比如i386平台对ARM的编译器

或某某平台对某某CPU的编译器,

就是没有例如“i386平台对未知平台”的编译器。这时我该怎么办呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表