Gebäude native Bibliothek mit standalone-toolchain arm-android
Ich versuche zu bauen libraw als Android-Laufzeit-Bibliothek. Es sieht die lib ist zu Komplex für die Verwendung mit Android.mk etc, oder besser: ich bin nicht fähig noch zu tun.
Ich habe versucht, die route mit einem standalone-toolchain aus dem NDK, aber ich bin immer stecken bei der Zusammenstellung dieser lib.
Dies ist der Weg, den ich nehmen, der zum kompilieren der lib. Bitte darauf hinweisen, wenn ich offensichtliche Fehler:
- Ich habe die ndk.
- ran:
make-standalone-toolchain.sh
- Hinzugefügt, die
bin
Ordner der standalone-toolchain als ersten Eintrag in meinemPATH
. - Lief
./configure
mit--host=arm-linux-androideabi
. Dies gelang - Lief
make
, hier krachte es sehr schnell.
LibRaw-0.14.4$ machen depbase=`echo interne/dcraw_common.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||";\ /bin/bash ./libtool --tag=CXX --mode=compile arm-linux-androideabi-g++ -DPACKAGE_NAME=\"LibRaw\" -DPACKAGE_TARNAME=\"libraw\" -DPACKAGE_VERSION=\"0.14.4\" -DPACKAGE_STRING=\"LibRaw\ 0.14.4\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"http://www.libraw.org\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I/usr/local/include -g -O2 -MT intern/dcraw_common.lo -MD -MP -MF $depbase.Tpo -c -o innen - /dcraw_common.lo internal/dcraw_common.cpp &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: arm-linux-androideabi-g++ -DPACKAGE_NAME=\"LibRaw\" -DPACKAGE_TARNAME=\"libraw\" -DPACKAGE_VERSION=\"0.14.4\" "-DPACKAGE_STRING=\"LibRaw 0.14.4\"" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"http://www.libraw.org\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I/usr/local/include -g -O2 -MT intern/dcraw_common.lo -MD -MP -MF interne/.deps/dcraw_common.Tpo -c internal/dcraw_common.cpp -fPIC -DPIC -o innen -/.libs/dcraw_common.o interne/dcraw_common.cpp: In member function 'void LibRaw::read_shorts(ushort*, int)': interne/dcraw_common.cpp:119: Fehler: 'Abstrich' wurde nicht deklariert, in diesem Umfang interne/dcraw_common.cpp: In member function 'void LibRaw::write_ppm_tiff()': interne/dcraw_common.cpp:9235: Fehler: 'Abstrich' wurde nicht deklariert, in diesem Umfang Hersteller: *** [interne/dcraw_common.lo] Fehler 1
Ich bezweifle, dass diese Fehlermeldung ist hilfreich, hier bei stackoverflow, aber ich bin Links Fragen, wenn ich einige zusätzliche Parameter oder Konfiguration, um diese zu arbeiten?
Beachten Sie, dass ich bin in der Lage zu kompilieren dieser lib erfolgreich, wenn nur das kompilieren für mein system ohne crosscompiling. (linux 32bit).
Wenn ich bin auf der Suche nach einer Anleitung für den Aufbau GDAL für Android (hier), verwendet es eine zusätzliche Einstellung von LIBS="-lsupc++ -lstdc++"
. Diese links, die STL und C++ - Ausnahmen?
Jedoch, wenn ich diese vor dem ausführen meiner configure
bekomme ich sofort Fehler wie:
konfigurieren:3018: überprüfen Sie, ob der C++ - compiler arbeitet konfigurieren:3040: arm-linux-androideabi-g++ conftest.cpp -lsupc++ -lstdc++ " >&5 /tmp/android-chain/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: cannot find -lsupc++ collect2: ld zurückgegeben, 1 exit status
So, ich bin ein wenig stecken. Jemand eine Idee?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte, um eine Umsetzung der
swab
Funktion, da das NDK nicht haben.Danach wird dieses kompiliert den feinen (aber ich habe die crystax ndk).
Einen besseren Weg toolwise war nur ein
Android.mk
- Datei, und verwendenndk-build
um es zu kompilieren.Linker-Fehler, die von unten Ihre Frage tritt auf, weil
make-standalone-toolchain.sh
aus NDK r7 erstellt unvollständig toolchain (es findet einige Bibliotheken, darunterlibsupc++.a
). Ich empfehle Ihnen, versuchen Sie es mit einer toolchain aus einer der vorherigen NDK-Versionen (r6b sollte in Ordnung sein).