2

我正在关注万花筒教程。发出目标代码非常简单,但现在我想实现链接步骤,以便我的玩具编程语言可以直接编译成二进制文件(因此不需要clang使用)。如何使用 LLVM 实现这一目标?

4

1 回答 1

2

至于“没有clang必要”:LLVM 有一个称为链接器的链接器LLD,它是 LLVM 项目的一部分。根据您安装 LLVM 的方式,它应该是发行版的一部分。

请参阅您安装的 LLD 版本以及使用策略。然后,您将能够定义您的makecmake食谱。

关于您的核心问题,这是我用自己的语言完成的一般制作流程:

  1. 编译源 -> output.ll(LLVM 程序集)
  2. 优化程序集 -> output.oll(使用opt
  3. 生成目标程序集 -> output.s
  4. 组装到对象(使用as)-> output.o
  5. 链接(我正在使用clang,但这可以交换lld
于 2018-01-03T10:59:23.140 回答