stdexcept Auf Android
Ich versuche SoundTouch auf Android zu kompilieren. Ich habe mit dieser Konfigurationszeile begonnen:
. / configure CPPFLAGS = "- I / Volumes / android-build / mydroid / entwicklung / ndk / build / plattformen / android-3 / arch-arm / usr / include /" LDFLAGS = "- Wl, -rpath-link = / Volumes / android-build / mydroid / development / ndk / build / plattformen / android-3 / arch-arm / usr / lib -L / Volumes / android-build / mydroid / development / ndk / build / plattformen / android-3 / arch-arm / usr / lib -nostdlib -lc "--host = arm-eabi --enable-shared = yes CFLAGS =" - nostdlib -O3 -mandroid "host_alias = arm-eabi --no-create --no -rekursion
Da das Android NDK auf ARM abzielt, musste ich auch das Makefile ändern, um die -msse2-Flags zu entfernen und fortzufahren.
Wenn ich 'make' starte, erhalte ich:
/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
Das ist nicht sehr überraschend, da das Flag -nostdlib erforderlich war. Android scheint weder stdexcept noch stdlib zu haben.Wie komme ich an diesem Block zum Kompilieren von SoundTouch vorbei?
Vielleicht gibt es eine Flagge, von der ich nicht weiß, ob ich sie verwenden soll. Ich könnte den Code umgestalten, um stdexcept nicht zu verwenden. Es kann eine Möglichkeit geben, die ursprüngliche stdexcept-Quelle einzubeziehen und darauf zu verweisen. Möglicherweise kann ich eine Verknüpfung zu einer vorkompilierten stdexcept-Bibliothek herstellen.