2010-04-23 7 views
5

Próbuję skompilować SoundTouch na Androida. Zacząłem od tej linii configure:stdexcept Na Androidzie

./configure CPPFLAGS = "- I/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/include /" LDFLAGS = "- Wl, -rpath-link =/Volumes/android-build/mydroid/development/ndk/build/platform/android-3/arch-arm/usr/lib -L/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/lib -nostdlib -lc "--host = arm-eabi --enable-shared = yes CFLAGS =" - nostdlib -O3 -mandroid "host_alias = ramię -eabi --no-create --no-recursion

Ponieważ Android NDK celuje w ARM, musiałem również zmienić plik Makefile, aby usunąć flagi -msse2, aby rozwijać.

Kiedy uruchomić 'make', otrzymuję:

/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 

To nie jest bardzo zaskakujące, ponieważ konieczne było -nostdlib flag. Android wydaje się nie mieć ani stdexcept ani stdlib. Jak przejść przez ten blok kompilacji SoundTouch?

Przypuszczam, że może istnieć jakaś flaga, o której nie wiem. Mogłem zmienić kod, aby nie używać stdexcept. Może istnieć sposób na pobranie oryginalnego źródła stdexcept i odniesienie do tego. Być może uda mi się połączyć z prekompilowaną biblioteką stdexcept.

Odpowiedz