Почему для Windows clang/llvm требуется Link.exe в Visual Studio?
Согласно сайту LLVM Getting Started (Windows):
... Clang может использоваться для передачи битового кода, прямой передачи объектных файлов или даже связанных исполняемых файлов с помощью Visual.exe link.exe.
Почему использование 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
как-то под капотом - почему не может ООО?
2 ответа
Потому что никто не написал компоновщик для LLVM.
Для этого есть проект (названный, невообразимо lld
) но это еще не готово.
Смотрите http://lld.llvm.org/ для более подробной информации.
На Mac люди используют компоновщик Apple, ld
,
В Linux большинство людей используют компоновщик GNU, обычно (также) с именем ld
Попробуйте MinGW-W64's ld. Я использовал его с Clang от llvm вместо инструментов VS, которые я использовал для создания Clang.