10

根据LLVM 的入门(Windows)站点

... Clang 可用于发出位码、直接发出目标文件甚至使用 Visual Studio 的 link.exe 链接的可执行文件。

为什么Link.exe需要在 Windows 上使用?而且,就此而言,Mac/Linux 上使用什么?再往下说:

Compile the program to object code using the LLC code generator:
    C:\..> llc -filetype=obj hello.bc
Link to binary using Microsoft link:
    C:\..> link hello.obj -defaultlib:libcmt

为什么 LLC 不能执行最后一步?LLI 似乎工作正常,所以我假设它link.exe在引擎盖下以某种方式互操作 - 为什么 LLC 不能?

4

2 回答 2

12

因为没有人为 LLVM 编写过链接器。

有一个项目可以这样做(称为,unimaginatively lld)但它还没有准备好。

有关详细信息,请参阅http://lld.llvm.org 。

在 mac 上,人们使用 Apple 的链接器,ld.

在 Linux 上,大多数人使用 gnu 链接器,通常(也)命名为ld

于 2013-01-14T05:20:58.323 回答
5

试试 MinGW-W64 的 ld。我一直将它与 llvm 的 clang 一起使用,而不是我最初用于构建 clang 的 VS 工具。

于 2013-03-04T14:02:19.087 回答