为什么Windows上的clang / llvm需要Visual Studio的Link.exe?

时间:2013-01-14 04:46:18

标签: windows linker llvm clang llc

根据LLVM's Getting Started (Windows) site

  

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

为什么在Windows上使用Link.exe是必要的?而且,就此而言,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?

2 个答案:

答案 0 :(得分:11)

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

有一个项目可以这样做(被称为,缺乏想象力的lld),但还没有准备好。

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

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

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

答案 1 :(得分:5)

试试MinGW-W64的ld。我一直在使用它与llvm的clang而不是我用来构建clang的VS工具。