Я пытаюсь скомпилировать простую тестовую программу на моем телефоне ARMv8-A через termux, чтобы убедиться, что она работает на телефонах ARMv8-R (только 32-разрядная версия), но clang продолжает пытаться подключиться к 64-разрядной версии. версии crtbegin_dynamic.o и crtend_android.o.
Я обнаружил эту закрытую проблему в пакетах termux , которая предписывала мне установить ndk-multilib и lld, и я даже заменил binutils ld на символическую ссылку на ld.lld (сохраняя резервную копию binutils) конечно) но я до сих пор не уверен, какие аргументы дать лязгать.
clang -m32 -L$PREFIX/arm-linux-androideabi/lib -L/system/lib -otest test.c
/data/data/com.termux/files/usr/bin/ld: error: /data/data/com.termux/files/usr/bin/../lib/crtbegin_dynamic.o is incompatible with armelf_linux_eabi
/data/data/com.termux/files/usr/bin/ld: error: /data/data/com.termux/files/usr/bin/../lib/crtend_android.o is incompatible with armelf_linux_eabi
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
(вывод -v просто показывает, что clang явно указывает ld использовать их)