clang 3.4的llvm ld仍然存在

llvm-ld still exist for clang 3.4 ?

本文关键字:存在 ld llvm clang      更新时间:2023-10-16

上次我检查clang是在3.1/3.2版本,现在我在Ubuntu 13.04 64位下,我从官方的apt存储库安装了clang和llvm(以及工具),但没有llvm-ld-3.4llvm-ld-3.0llvm-ld-3.1的痕迹,我的问题是:我应该用什么来取代llvm-ld并生成一个库或一个机器可执行文件?

llvm-ld已不存在。来自LLVM 3.2发行说明:

llvm ld和llvm存根已被删除,llvm ld功能可以部分替换为llvm link|opt|{llc|as,llc-filetype=obj}|ld,或者完全替换为Clang。

或者,以更好的格式:

  1. 将所有.bc/.ll文件与llvm-link链接,以获得一个位代码文件
  2. 运行opt以优化位代码文件
  3. 通过以下方式之一生成对象文件
    • llc获取asm文件,然后系统汇编器(as)获取对象文件
    • llc -filetype=obj获取一个对象文件(这只是单独调用系统汇编程序)
  4. 系统链接器(ld),用于将您的对象文件与所有其他必需的对象文件链接

至于为什么被删除,请查看LLVM开发讨论。

此外,您可能对这个相关的问题感兴趣:如何使用LLVM>=将对象链接到库3.1?(无GNU ld)