Ich versuche, die FFTW
Bibliothek und einige Dateien auf Android zu portieren, unter Verwendung der Version 2.1.5 von FFTW
. Ich kompilierte es mit den Befehlen configure & make und ich versuche, es als eine vordefinierte Bibliothek zu verwenden. In meinem NDK
Projekt kompiliert alles ohne Fehler, aber bei der Verknüpfung ich die folgende Fehlermeldung erhalten:Android NDK: keine Archivsymboltabelle
Compile++ thumb : water <= vertex.cpp
Compile++ thumb : water <= face.cpp
Compile++ thumb : water <= Solver.cpp
Compile++ thumb : water <= Water.cpp
SharedLibrary : libwater.so
/Users/Xavi/Documents/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: /Users/Xavi/Documents/workspace/mmm/obj/local/armeabi/libfftw.a: no archive symbol table (run ranlib)
Mein Android.mk Code ist der folgende
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := fftw
LOCAL_SRC_FILES := fftw/lib/libfftw.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := water
LOCAL_C_INCLUDES := $(LOCAL_PATH)/water/include
LOCAL_SRC_FILES := \
water/src/vertex.cpp \
water/src/face.cpp \
water/src/Solver.cpp \
water/src/Water.cpp
LOCAL_STATIC_LIBRARIES := fftw
include $(BUILD_SHARED_LIBRARY)
Mache ich etwas falsch, oder ist es besser die FFTW
Bibliothek auf eine andere Art zu kompilieren?
Werfen Sie einen Blick auf diese Frage: http://stackoverflow.com/questions/7234629/linking-fftw-into-an-android-ndk-application – Entreco
Welchen Compiler haben Sie verwendet, um zu bauen FFTW? Sie müssen entweder eine eigenständige Android-Toolchain generieren, die FFTW an das ndk-Build-System anpassen (Android.mk usw.), oder einen der veralteten Wrapper-Hacks verwenden - Sie können nicht einfach die androiden Toolchain-Binärdateien aus der ndk-Distribution aufrufen Sie würden die von einem gewöhnlichen Cross-Compiler. –
Die Bibliothek wurde mit dem Apple 'cc'-Compiler, Version 3.1, erstellt. Ich werde versuchen, die Bibliothek über ndk zu kompilieren, aber dann denke ich, dass ich nicht verstehe, wie man vorgefertigte Bibliotheken benutzt – gibon