上次我检查 clang 时它的版本是 3.1/3.2,现在我在 Ubuntu 13.04 64 位下,我从官方 apt 存储库安装了 clang 和 llvm(加上工具),但没有任何痕迹llvm-ld-3.4
,llvm-ld-3.0
并且llvm-ld-3.1
是我的机器上只有这个工具的 2 个版本,我的问题是:我应该用什么替换 llvm-ld 并生成一个库或机器可执行文件?
问问题
4455 次
1 回答
18
llvm-ld
不复存在。从LLVM 3.2 发行说明:
llvm-ld 和 llvm-stub 已被移除,llvm-ld 功能可以部分替换为 llvm-link | 选择 | {llc | 如,llc -filetype=obj} | ld,或完全被 Clang 取代。
或者,以更好的格式:
- 链接所有 .bc / .ll 文件
llvm-link
,以获取一个位码文件 - 运行
opt
以优化位码文件 - 生成一个目标文件,通过其中一个
llc
获取 asm 文件,然后系统汇编程序 (as
) 获取目标文件llc -filetype=obj
获取目标文件(这只是自己调用系统汇编程序)
- 系统链接器 (
ld
) 将您的目标文件与所有其他所需的目标文件链接
至于它为什么被删除,请查看这个 LLVM-dev 讨论。
此外,您可能对这个相关问题感兴趣:如何使用 LLVM >= 3.1 将对象链接到库?(没有 GNU ld)
于 2013-07-22T05:04:25.427 回答