Android NDK 編譯出現 undefined reference to __atomic_store_4

在開發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就可以解決了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章