2010-04-23 6 views
5

मैं एंड्रॉइड पर साउंड टच संकलित करने की कोशिश कर रहा हूं। मैंने इस कॉन्फ़िगरेशन लाइन से शुरुआत की:एंड्रॉइड पर stdexcept

./configure CPPFLAGS = "- I/वॉल्यूम/एंड्रॉइड-बिल्ड/mydroid/विकास/ndk/build/platforms/android-3/arch-arm/usr/include /" एलडीएफएलजीएस = "- WL, -rpath-link =/वॉल्यूम/एंड्रॉइड-बिल्ड/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/lib -L/वॉल्यूम/एंड्रॉइड-बिल्ड/mydroid/विकास/ndk/build/platforms/android-3/arch-arm/usr/lib -nostdlib -lc "--host = arm-eabi --enable-shared = yes CFLAGS =" - nostdlib -O3 -mandroid "host_alias = arm -एबी --no-create --no-recursion

क्योंकि एंड्रॉइड एनडीके एआरएम को लक्षित करता है, इसलिए मुझे प्रगति के लिए -msse2 झंडे को हटाने के लिए मेकफ़ाइल को भी बदलना पड़ा।

जब मैं 'मेक' चलाने के लिए, मैं:

/bin/sh ../../libtool --tag=CXX --mode=compile arm-eabi-g++ -DHAVE_CONFIG_H -I. -I../../include -I../../include -I/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/include/ -O3 -fcheck-new -I../../include -g -O2 -MT FIRFilter.lo -MD -MP -MF .deps/FIRFilter.Tpo -c -o FIRFilter.lo FIRFilter.cpp 
libtool: compile: arm-eabi-g++ -DHAVE_CONFIG_H -I. -I../../include -I../../include -I/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/include/ -O3 -fcheck-new -I../../include -g -O2 -MT FIRFilter.lo -MD -MP -MF .deps/FIRFilter.Tpo -c FIRFilter.cpp -o FIRFilter.o 
FIRFilter.cpp:46:21: error: stdexcept: No such file or directory 
FIRFilter.cpp: In member function 'virtual void soundtouch::FIRFilter::setCoefficients(const soundtouch::SAMPLETYPE*, uint, uint)': 
FIRFilter.cpp:177: error: 'runtime_error' is not a member of 'std' 
FIRFilter.cpp: In static member function 'static void* soundtouch::FIRFilter::operator new(size_t)': 
FIRFilter.cpp:225: error: 'runtime_error' is not a member of 'std' 
make[2]: *** [FIRFilter.lo] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all-recursive] Error 1 

इस के बाद से -nostdlib झंडा आवश्यक था, बहुत आश्चर्य की बात नहीं है। ऐसा लगता है कि एंड्रॉइड न तो stdexcept और न ही stdlib है। मैं SoundTouch संकलन के इस ब्लॉक को कैसे प्राप्त कर सकता हूं?

अनुमान में, कुछ ध्वज हो सकता है जो मुझे नहीं पता कि मुझे इसका उपयोग करना चाहिए। मैं कोड को दोहरा सकता हूं कि stdexcept का उपयोग न करें। मूल stdexcept स्रोत और संदर्भ में खींचने का एक तरीका हो सकता है। मैं एक precompiled stdexcept पुस्तकालय से जोड़ने में सक्षम हो सकता है।

उत्तर

2

Android ndk के साथ प्रदान किया गया डिफ़ॉल्ट प्रदान किया गया जीसीसी संस्करण अपवादों का समर्थन नहीं करता है। वैकल्पिक निर्माण के लिए http://www.crystax.net/android/ndk.php देखें जो करता है।

संबंधित मुद्दे