Moin,
ich würde gern das Android NDK (15c) direkt benutzen ohne erst eine
alleinstehende Toolchain basteln zu müssen. Das ist zwar mit $NDK/build/tools/make_standalone_toolchain.py relativ einfach möglich, aber als Ergebnis habe ich dann trotzdem jede Menge Dateien dupliziert. Stattdessen würde ich gern mit --sysroot hantieren und dieses der jeweils passenden Toolchain übergeben. Die TARGET_LDFLAGS und TARGET_CFLAGS hole ich mir in meinem eigenen Makefile darüber, daß ich die entsprechenden Makefile-Fragmente aus $NDK/build/core/toolchains/$TOOLCHAIN einbinde.
Insgesamt scheint das schon relativ gut zu funktionieren, nur daß am Ende im Moment ein Linkerfehler steht. Das ist etwas doof, weil es ausgerechnet der letzte Schritt ist um die ausführbare Datei zu bekommen.
Code:
android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory
(die Pfade sind der Übersichtlichkeit halber gekürzt)
Nun ist aber das Problem, daß diese beiden Objektdateien existieren. Und zwar in jenen Verzeichnissen die ich per -L (habe auch -Wl,-L probiert) an GCC übergebe. Auch mit -### und -v ist nicht zu ersehen warum genau der Linker sich hier weigert die Objektdateien zu finden.
Hat jemand schonmal außerhalb der Methode mit ndk-build die Toolchains direkt aus dem NDK eingesetzt und kann sich denken wo es hier hakt?