LLVM:实现目标代码的链接

时间:2018-01-01 21:23:08

标签: linker llvm object-code

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

1 个答案:

答案 0 :(得分:1)

对于" no 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交换)