用户工具


关于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