Tôi đang cố gắng chuyển thư viện FFTW
và một số tệp .cpp
sang Android, sử dụng phiên bản 2.1.5 của FFTW
. Tôi biên soạn nó bằng cách sử dụng các cấu hình & làm cho các lệnh và tôi cố gắng sử dụng nó như một thư viện được xây dựng sẵn. Trong dự án NDK
tôi tất cả mọi thứ biên dịch không có lỗi, nhưng khi liên kết tôi nhận được lỗi sau:Android NDK: không có bảng biểu tượng lưu trữ
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)
My Android.mk code đang sau
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)
Tôi có làm điều gì sai, hoặc là nó tốt hơn để biên dịch thư viện FFTW
theo cách khác?
Hãy xem câu hỏi này: http://stackoverflow.com/questions/7234629/linking-fftw-into-an-android-ndk-application – Entreco
Trình biên dịch nào bạn đã sử dụng để xây dựng FFTW? Bạn cần tạo ra một toolchain android độc lập, thích ứng FFTW với hệ thống xây dựng ndk (Android.mk etc), hoặc sử dụng một trong những hacking wrapper lỗi thời - bạn không thể đơn giản gọi các tệp nhị phân toolchain của android tạo phân phối ndk theo cách bạn sẽ là những người từ một số trình biên dịch thông thường. –
Thư viện được xây dựng với trình biên dịch 'cc' của Apple, phiên bản 3.1. Tôi sẽ cố gắng biên dịch thư viện thông qua ndk, nhưng sau đó tôi nghĩ rằng tôi không hiểu cách sử dụng thư viện dựng sẵn – gibon