【发布时间】:2012-05-27 14:55:31
【问题描述】:
最近自己尝试在linux平台上写一个简单的编译器。
谈到编译器的后端,我决定不使用第三方库生成ELF格式的二进制文件,例如libelf。
相反,我想尝试通过使用write() 函数并控制ELF文件的所有细节,将机器代码直接写入对应ELF ABI的文件中。
这种方法的优点是我可以为我的编译器控制一切。
但我在犹豫。考虑到 ELF ABI 的详细程度,这种方式可行吗?
我希望有任何建议和指向可用的可用资源。
【问题讨论】:
-
啊,是的,旧的“我想写我自己的百科全书,因为这样我就不必担心经过同行审查、成千上万人校对过的百科全书有任何不准确之处——我可以做得更好”的论点。
-
@Marc - 对于生产软件,我完全同意。但是,如果您已经在编写自己的编译器来学习编译器编写,为什么不一路走下去,自己进行代码生成和输出。可能是一次非常有趣的学习经历。
-
这将是链接器的工作,而不是编译器。
标签: c linux compiler-construction elf