1
SoundTouch 라이브러리의 NDK_Build 중에 실패한 Android NDK 프로젝트가 있습니다.Android ndk에서 SoundTouch 라이브러리 오류를 컴파일합니다.
빌드 로그
[email protected]:~/warspace/AudioAnalyzerLib/jni$ /home/izzy/warspace/adt-bundle-linux-x86-20140321/ndk/ndk-build
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 8 in /home/izzy/warspace/AudioAnalyzerLib/AndroidManifest.xml
Android NDK: WARNING: Ignoring invalid values in LOCAL_CPP_FEATURES definition in /home/izzy/warspace/AudioAnalyzerLib/jni/Android.mk: -fno-exceptions
[armeabi] Compile++ thumb: SoundTouch <= AAFilter.cpp
[armeabi] Compile++ thumb: SoundTouch <= BPMDetect.cpp
[armeabi] Compile++ thumb: SoundTouch <= cpu_detect_x86.cpp
[armeabi] Compile++ thumb: SoundTouch <= FIFOSampleBuffer.cpp
[armeabi] Compile++ thumb: SoundTouch <= FIRFilter.cpp
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/FIRFilter.cpp: In static member function 'static soundtouch::FIRFilter* soundtouch::FIRFilter::newInstance()':
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/FIRFilter.cpp:294:10: warning: variable 'uExtensions' set but not used [-Wunused-but-set-variable]
[armeabi] Compile++ thumb: SoundTouch <= mmx_optimized.cpp
[armeabi] Compile++ thumb: SoundTouch <= PeakFinder.cpp
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/PeakFinder.cpp: In member function 'int soundtouch::PeakFinder::findCrossingLevel(float const*, float, int, int) const':
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/PeakFinder.cpp:146:11: warning: variable 'peaklevel' set but not used [-Wunused-but-set-variable]
[armeabi] Compile++ thumb: SoundTouch <= RateTransposer.cpp
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/RateTransposer.cpp: In member function 'void soundtouch::RateTransposer::processSamples(const SAMPLETYPE*, uint)':
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/RateTransposer.cpp:133:10: warning: variable 'count' set but not used [-Wunused-but-set-variable]
[armeabi] Compile++ thumb: SoundTouch <= SoundTouch.cpp
[armeabi] Compile++ thumb: SoundTouch <= sse_optimized.cpp
[armeabi] Compile++ thumb: SoundTouch <= TDStretch.cpp
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/TDStretch.cpp: In static member function 'static soundtouch::TDStretch* soundtouch::TDStretch::newInstance()':
/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/TDStretch.cpp:627:10: warning: variable 'uExtensions' set but not used [-Wunused-but-set-variable]
[armeabi] SharedLibrary : libSoundTouch.so
/home/izzy/warspace/adt-bundle-linux-x86-20140321/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/izzy/warspace/AudioAnalyzerLib/obj/local/armeabi/objs/SoundTouch/SoundTouch/RateTransposer.o: in function soundtouch::TransposerBase::newInstance():/home/izzy/warspace/AudioAnalyzerLib/jni/SoundTouch/RateTransposer.cpp:284: error: undefined reference to 'soundtouch::InterpolateLinearInteger::InterpolateLinearInteger()'
collect2: ld returned 1 exit status
make: *** [/home/izzy/warspace/AudioAnalyzerLib/obj/local/armeabi/libSoundTouch.so] Error 1
나는 그것이 정의되지 않은 참조 오류가 있습니다 알고 있지만 내가 그것을 이해하지 않습니다. RateTransposer.cpp 이것은
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
// Notice: For integer arithmetics support only linear algorithm (due to simplest calculus)
return new InterpolateLinearInteger; # <<<<<________________LINE 284
#else
이
내 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/ #include/BPMDetect.h include/FIFOSampleBuffer.h include/FIFOSamplePipe.h include/SoundTouch.h include/STTypes.h
LOCAL_CFLAGS += -Wall -fvisibility=hidden -I include -D ST_NO_EXCEPTION_HANDLING -fdata-sections -ffunction-sections -marm
include $(BUILD_SHARED_LIBRARY)
감사 파일 실패 코드입니다
#include "InterpolateLinear.h"
InterpolateLinear.h을 포함 조
나는 또한'../../SoundTouch/InterpolateCubic.cpp를 추가 끝날했다 '및'../../ SoundTouch/InterpolateShannon.cpp'도 포함되지만 올바른 방향으로 나를 가르쳐 주셔서 감사합니다! – trippedout