关于编译器的几个问题。。。
假如我要做一个C语言编译器,那么如何连接生成可执行文件呢?这一点我一直搞不明白,假如不能生成可执行文件的话就只能是解释器了。 可以用C语言编译器编译C语言实现的C语言编译器,与编译其它东西一样. 一个编译的过程通常包括预处理,编译,汇编和连接。比如linux上使用的GCC编译器,它实际上是个驱动,调用了四个程序来执行上述的过程。生成可执行文件是连接器的事情。编译器负责生成汇编文件。 我觉得楼主的意思 好象是想知道如何生成可执行文件。这好象需要知道每个操作系统的可执行文件的格式吧。个人想法,仅供参考。 编译器不需要直接生成可执行文件。
可以生成汇编代码,再有汇编器(gas...) 生成机器码。
不过即使只汇编代码,也需要了解系统的ABI(如ELF格式等)。
页:
[1]