在開發jni程序的時候,寫完代碼開始編譯,出現undefined reference to __atomic_store_4,一看就是ndk編譯的時候沒有找到c++11的atomic庫。
C++11包括很多標準庫,比如<thread>,<atomic>。NDK提供了很多個C++的運行庫,不同運行庫支持的功能不同。
默認使用的運行時庫叫system,功能很有效。除system之外,還有stlport,gabi++,gnu stl,llvm libc++等不同版本。
同一個版本的庫,比如gnu stl,又可以分成靜態庫,動態庫等。在編譯的時候,需要聲明具體的版本才能使用,在Application.mk中加上NDK_TOOLCHAIN_VERSION := 4.8就可以解決了。