在开发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中加上
APP_STL := stlport_static
NDK_TOOLCHAIN_VERSION := 4.8
就可以解决了。
本文详细介绍了在开发JNI程序时遇到的C++11 atomic库未找到的问题及其解决方案。通过在Application.mk文件中指定使用stlport_static静态库和设置NDK_TOOLCHAIN_VERSION为4.8,成功解决了编译时出现的undefined reference to __atomic_store_4错误。
7623

被折叠的 条评论
为什么被折叠?



