По LLVM's Getting Started (Windows) site:Почему clang/llvm на окнах требует Link.exe Visual Studio?
... Clang может быть использован для испускает битовый код, непосредственно испускает объектные файлы или даже связанные исполняемые файлы с помощью link.exe из Visual Studio.
Почему использование 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
Почему компания не может выполнить последний шаг? LLI, похоже, работает нормально, поэтому я предполагаю, что он взаимодействует с link.exe
как-то под капотом - почему не может LLC?
Я думаю, это означает, что LLVM не делает LTO? – Mehrdad
@Mehrdad: LLVM делает LTO на уровне IR. Но даже если исполняемый файл создается из одного файла .s, он все равно должен быть связан. –
@Mehrdad, как 'gold', так и Mac' ld' могут использовать плагин LLVM для LTO. –