【发布时间】:2013-07-20 17:43:14
【问题描述】:
上次我检查 clang 时它的版本是 3.1/3.2,现在我在 Ubuntu 13.04 64 位下,我从官方 apt 存储库安装了 clang 和 llvm(加上工具),但没有 @ 的踪迹987654321@、llvm-ld-3.0 和 llvm-ld-3.1 是我的机器上唯一可用的这个工具的 2 个版本,我的问题是:我应该用什么替换 llvm-ld 并生成一个库或机器可执行文件?
【问题讨论】:
上次我检查 clang 时它的版本是 3.1/3.2,现在我在 Ubuntu 13.04 64 位下,我从官方 apt 存储库安装了 clang 和 llvm(加上工具),但没有 @ 的踪迹987654321@、llvm-ld-3.0 和 llvm-ld-3.1 是我的机器上唯一可用的这个工具的 2 个版本,我的问题是:我应该用什么替换 llvm-ld 并生成一个库或机器可执行文件?
【问题讨论】:
llvm-ld 不再存在。来自LLVM 3.2 release notes:
llvm-ld 和 llvm-stub 已被移除,llvm-ld 功能可以部分替换为 llvm-link |选择 | {llc |如,llc -filetype=obj} | ld,或完全被 Clang 替换。
或者,以更好的格式:
llvm-link 链接,以获得一个位码文件opt优化bitcode文件llc 获取 asm 文件,然后系统汇编程序 (as) 获取目标文件llc -filetype=obj 获取目标文件(这只是自己调用系统汇编程序)ld) 将您的目标文件与所有其他所需的目标文件链接至于为什么被删除,请查看this LLVM-dev discussion。
另外,您可能对这个相关问题感兴趣:How to link object to libraries with LLVM >= 3.1 ? ( no GNU ld )
【讨论】:
ld ?我很好奇他们为什么这样做以及在 MAC OS X 环境中会发生什么,他们也在 MAC 下使用ld 吗?我的好奇心也是关于-O4优化级别,这种情况下该怎么办?