Android NDK支持STL的一些注意事項


Android NDK從r5b版本開始有官方支持的STL了,有一個crystax版本早已經支持。官方的支持有兩個版本一個是gnu的,一個是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一個選項,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四種:
    system --> 系統默認的最小支持的C++運行時庫
    stlport_static --> 以靜態鏈接的方式使用stlport版本的STL
    stlport_shared --> 以動態鏈接的方式使用stlport版本的STL
    gnustl_static  --> 以靜態鏈接的方式使用gnu版本的STL

如果你和我一樣並沒有使用Android.mk和Application.mk,而是使用Code::Blocks或者Visual studio 2010,那么在配置環境時,如果需要STL的支持,那么就需要注意自己要指定stl的包含路徑。鏈接就根據需要自己鏈接不同的版本。請注意,stlport有靜態鏈接和動態鏈接兩種方式,而gnu的僅有靜態鏈接方法。

另外一個需要注意的就是官方提供的這個stlport版本不支持RTTI和異常,換言之,如果你使用了stlport版本的STL,則不能使用-fexceptions和-frtti這兩個編譯選項。

本來轉自:http://www.cppblog.com/kongque/archive/2011/06/29/149781.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM