Процесс компиляции LLVM и LLD

Я пытался переключиться на LLVM, так как я хотел бы получить больше информации о всей сцене "разработчика программного обеспечения", и кажется, что сейчас LLVM - это будущее. Я собирал LLVM/Clang/LLD/compiler-rt/libcxx из исходного кода несколько раз сейчас, как с GNU/GCC, так и с LLVM/Clang.

Проблема возникает, когда я пытаюсь использовать только что скомпилированные компиляторы. Из того, что я вижу, clang использует GNU LD вместо LLVM lld, Это правда?

LLD, кажется, очень ограниченная программа от lld -help вывод, но из того, что я прочитал, это так полнофункционально, как ld, Я не могу найти документацию о том, как его использовать - кто-нибудь знает, где я могу найти какое-то всеобъемлющее руководство по нему?

Спасибо.

4 ответа

Проходить -fuse-ld=lld лязгать, чтобы заставить его использовать lld для компоновки. К настоящему времени это в очень хорошей форме.

Вы можете пройти -v или же -### чтобы заставить его напечатать, какую команду компоновщика он запускает или будет выполнять.

Я знаю, что этот вопрос старый, но есть более новое решение:

Чтобы использовать компоновщик ld.lld при создании любой цели llvm, просто передайте-DLLVM_ENABLE_LLD=ONв командной строке cmake.

      //Use lld as C and C++ linker.
LLVM_ENABLE_LLD:BOOL=TRUE

Для других проектов cmake передайте:-DCMAKE_LINKER=/etc/bin/ld.lld

Команда LLVM говорит, что она готова к работе, потому что FreeBSD может многое компилировать и связывать с LLD.

Документацию по проекту LLD можно найти по http://lld.llvm.org/.

Это написано:

LLD является заменой линкерам GNU.

Он принимает те же аргументы командной строки и сценарии компоновщика, что и GNU.

Таким образом, вы можете использовать те же аргументы, что и GNU LD.

На данный момент руководства нет, и, в зависимости от платформы, вы можете работать достаточно хорошо. Тем не менее, если бы lld был "готов к производству", мы бы переключили clang на его использование по умолчанию для различных платформ. Его еще нет, поэтому я бы не советовал вам использовать его для повседневной разработки.

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