Nach LLVM's Getting Started (Windows) site:Warum benötigt clang/llvm unter Windows Visual Studio's Link.exe?
... Clang verwendet werden können Bitcode emittieren, direkt Objektdateien emittieren oder auch verknüpfte ausführbare Visual Studio link.exe verwenden.
Warum ist die Verwendung von Link.exe
unter Windows erforderlich? Und was wird auf Mac/Linux verwendet? Weiter unten steht:
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
Warum kann LLC diesen letzten Schritt nicht ausführen? LLI scheint gut zu funktionieren, also nehme ich an, dass es mit link.exe
irgendwie unter der Haube zusammenarbeitet - warum kann LLC nicht?
Ich denke, das bedeutet LLVM tut nicht LTO? – Mehrdad
@Mehrdad: LLVM tut LTO auf IR-Ebene. Aber selbst wenn eine ausführbare Datei aus einer einzelnen .s-Datei erstellt wird, muss sie dennoch verknüpft werden. –
@Mehrdad, sowohl 'gold' als auch Mac' ld' können das LLVM-Plugin für LTO verwenden. –