LLD — неизвестный аргумент: -arch

Попытка связать простую программу с использованием выпуска LLVM 4.0.0 (Clang, LLD) на Mac OS Sierra.
Обратите внимание, это полностью достижимо в Linux.

Мой текущий путь начинается с LLVM bin каталог (т.е. /opt/LLVM/4.0.0/bin:$PATH,

Программа (main.cpp) самое простое приложение на C ++:

int main()
{
return 0;
}

Выдана команда оболочки: clang -fuse-ld=lld,
Это терпит неудачу с этими ошибками:

/opt/llvm/4/bin/ld.lld: error: unknown argument: -no_deduplicate
/opt/llvm/4/bin/ld.lld: error: unknown argument: -dynamic
/opt/llvm/4/bin/ld.lld: error: unknown argument: -arch
/opt/llvm/4/bin/ld.lld: error: unknown emulation: acosx_version_min
/opt/llvm/4/bin/ld.lld: error: unable to find library -lto_library
/opt/llvm/4/bin/ld.lld: error: /opt/llvm/4/lib/libLTO.dylib: invalid data encoding
clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)

С использованием -v переключатель, я вижу эту команду компоновщика (в формате):

"/opt/llvm/4/bin/ld.lld" \
-demangle \
-lto_library /opt/llvm/4/lib/libLTO.dylib \
-no_deduplicate \
-dynamic \
-arch x86_64 \
-macosx_version_min 10.12.0 \
-o a.out \
main.o \
-lSystem /opt/llvm/4/bin/../lib/clang/4.0.0/lib/darwin/libclang_rt.osx.a

Кто-нибудь знает правильные переключатели для этой платформы?

9

Решение

После обращения к списку рассылки LLVM-dev выясняется, что разработка LLD для macOS (то есть связывание форматов объектов Mach-O) устарела.

Чтобы использовать Clang на macOS, лучше придерживаться предоставленной ОС ld64,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]