根据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?
答案 0 :(得分:11)
因为没有人为LLVM编写过链接器。
有一个项目可以这样做(被称为,缺乏想象力的lld
),但还没有准备好。
有关详细信息,请参阅http://lld.llvm.org。
在Mac上,人们使用Apple的链接器ld
。
在Linux上,大多数人使用gnu链接器,通常(也称为)ld
答案 1 :(得分:5)
试试MinGW-W64的ld。我一直在使用它与llvm的clang而不是我用来构建clang的VS工具。