我想編譯Android NDK的SoundTouch庫。我從Here得到了一些指令在android中編譯這個庫。在SoundTouch LIB像這樣不同的源文件Android:在編譯SoundTouch lib中的Android的幫助
但是,當我嘗試用ndk-build
命令編譯它,它顯示錯誤:
我試圖以指令中所提到的關閉異常處理,但它不似乎工作。
我將SoundTouch源代碼中的所有文件複製到我的項目的JNI文件夾中。這裏是我的android.mk
文件:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS :- -frtti -fexceptions
LOCAL_SRC_FILES := AAFilter.cpp BPMDetect.cpp cpu_detect_x86.cpp FIFOSampleBuffer.cpp FIRFilter.cpp main.cpp mmx_optimized.cpp PeakFinder.cpp RateTransposer.cpp RunParameters.cpp SoundTouch.cpp sse_optimized.cpp TDStretch.cpp WavFile.cpp
LOCAL_LDLIBS := -lpcap
LOCAL_MODULE := libSoundTouch
LOCAL_C_INCLUDES := BPMDetect.h FIFOSampleBuffer.h FIFOSamplePipe.h SoundTouch.h STTypes.h
include $(BUILD_SHARED_LIBRARY)
任何人都可以請幫我編譯和Android上使用SoundTouch LIB?
UPDATE:
我改變了我的android.mk
文件,如下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CPP_FEATURES += -fno-exceptions
LOCAL_SRC_FILES := \
SoundTouch/AAFilter.cpp \
SoundTouch/BPMDetect.cpp \
SoundTouch/cpu_detect_x86.cpp\
SoundTouch/FIFOSampleBuffer.cpp \
SoundTouch/FIRFilter.cpp \
SoundTouch/mmx_optimized.cpp \
SoundTouch/PeakFinder.cpp \
SoundTouch/RateTransposer.cpp \
SoundTouch/SoundTouch.cpp \
SoundTouch/sse_optimized.cpp \
SoundTouch/TDStretch.cpp
LOCAL_MODULE := libSoundTouch
LOCAL_C_INCLUDES := include/BPMDetect.h include/FIFOSampleBuffer.h include/FIFOSamplePipe.h include/SoundTouch.h include/STTypes.h
include $(BUILD_SHARED_LIBRARY)
而現在是所有工作的罰款。謝謝
要啓用異常,您需要在Android.mk文件中使用「LOCAL_CPP_FEATURES:= exceptions rtti」。你得到的第一個錯誤是什麼,在哪條線上? –
嘿,你已經做了什麼來建立這個庫?只需將Android.mk,Aplication.mk和soundtouch-jni.cpp複製到一個新的android項目中即可。並通過NDK生成命令構建它...我按照這些步驟,但它給了我錯誤...類似於「http://stackoverflow.com/questions/15662981/soundtouch-building-with-android-ndk」 –