9

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

4

1 回答 1

18

llvm-ld不复存在。从LLVM 3.2 发行说明

llvm-ld 和 llvm-stub 已被移除,llvm-ld 功能可以部分替换为 llvm-link | 选择 | {llc | 如,llc -filetype=obj} | ld,或完全被 Clang 取代。

或者,以更好的格式:

  1. 链接所有 .bc / .ll 文件llvm-link,以获取一个位码文件
  2. 运行opt以优化位码文件
  3. 生成一个目标文件,通过其中一个
    • llc获取 asm 文件,然后系统汇编程序 ( as) 获取目标文件
    • llc -filetype=obj获取目标文件(这只是自己调用系统汇编程序)
  4. 系统链接器 ( ld) 将您的目标文件与所有其他所需的目标文件链接

至于它为什么被删除,请查看这个 LLVM-dev 讨论

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

于 2013-07-22T05:04:25.427 回答