关于Android对C++的支持:
Files libstdc++.* from your Ubuntu are x86 (or x86_64) binaries but Android devices and emulators are ARM. Of course, this will not work anyway, even if you’ll set correct soname. This is very naive way which leads nowhere. Android has very limited support of C++ meaning there is no exceptions, standard C++ library (including STL) and RTTI. If you need such functionality, use my custom NDK distribution from http://crystax.net/android/ndk.php – it support full C++ features listed above. 即android本身支持的c++无异常处理、RTTI,c++标准库等。 不过有人定制了一个NDK,全支持这些了。 为什么会出现如:error: undefined reference to ‘__cxa_end_cleanup’ 的链接错误。Android上用stlport时。因为没有链接到libstdc++.a。所以出错。 因为用到了一些静态库, 所以必须要链接完整的libstdc++.a。可以在 http://crystax.net/android/ndk.php这里下载的包里 sources\cxx-stl\gnu-libstdc++\libs\armeabi目录中找到。 Android上本身的libstdc++支持有限,所以必须链接到一个完整的libstdc++.a才行。 在Android.mk文件中加入 LOCAL_LDFLAGS = $(LOCAL_PATH)/libs/libcurl.a \ $(LOCAL_PATH)/libs/libstdc++.a 以及LOCAL_CPPFLAGS += -lstdc++就可以编译通过了。 这样 的话,android上的c++就支持 c++无异常处理、RTTI,c++标准库stl等了。 支持异常处理: LOCAL_CPPFLAGS += -lstdc++ -fexceptions STL库:libstlport.a