Według LLVM's Getting Started (Windows) site:Dlaczego clang/llvm w systemie Windows wymaga programu Visual Studio's Link.exe?
... Clang mogą być wykorzystywane do emitowania bitcode bezpośrednio emitują plików obiektowych czy nawet połączone wykonywalne za pomocą Visual Studio link.exe.
Dlaczego korzystanie z Link.exe
w systemie Windows jest konieczne? A co z tego, co jest używane na Mac/Linux? Dalej na dole jest napisane:
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
Dlaczego firma LLC nie może wykonać tego ostatniego kroku? Wydaje się, że LLI działa dobrze, więc zakładam, że współpracuje on z link.exe
jakoś pod maską - dlaczego nie może być LLC?
Chyba oznacza to, że LLVM nie wykonuje LTO? – Mehrdad
@Mehrdad: LLVM wykonuje LTO na poziomie IR. Ale nawet jeśli plik wykonywalny jest tworzony z pojedynczego pliku .s, nadal musi być połączony. –
@Mehrdad, zarówno 'gold', jak i Mac' ld' mogą używać LLVM do LTO. –