关于编译器的几个问题。。。
假如我要做一个C语言编译器,那么如何连接生成可执行文件呢?
这一点我一直搞不明白,假如不能生成可执行文件的话就只能是解释器了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假如我要做一个C语言编译器,那么如何连接生成可执行文件呢?
这一点我一直搞不明白,假如不能生成可执行文件的话就只能是解释器了。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
可以用C语言编译器编译C语言实现的C语言编译器,与编译其它东西一样.
一个编译的过程通常包括预处理,编译,汇编和连接。比如linux上使用的GCC编译器,它实际上是个驱动,调用了四个程序来执行上述的过程。生成可执行文件是连接器的事情。编译器负责生成汇编文件。
我觉得楼主的意思 好象是想知道如何生成可执行文件。这好象需要知道每个操作系统的可执行文件的格式吧。个人想法,仅供参考。
编译器不需要直接生成可执行文件。
可以生成汇编代码,再有汇编器(gas...) 生成机器码。
不过即使只汇编代码,也需要了解系统的ABI(如ELF格式等)。