我正在关注万花筒教程。发出目标代码非常简单,但现在我想实现链接步骤,以便我的玩具编程语言可以直接编译成二进制文件(因此不需要clang
使用)。如何使用 LLVM 实现这一目标?
问问题
717 次
1 回答
2
至于“没有clang
必要”:LLVM 有一个称为链接器的链接器LLD
,它是 LLVM 项目的一部分。根据您安装 LLVM 的方式,它应该是发行版的一部分。
请参阅您安装的 LLD 版本以及使用策略。然后,您将能够定义您的make
或cmake
食谱。
关于您的核心问题,这是我用自己的语言完成的一般制作流程:
- 编译源 -> output.ll(LLVM 程序集)
- 优化程序集 -> output.oll(使用
opt
) - 生成目标程序集 -> output.s
- 组装到对象(使用
as
)-> output.o - 链接(我正在使用
clang
,但这可以交换lld
)
于 2018-01-03T10:59:23.140 回答