Почему для 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.

Другие вопросы по тегам