NDK中C++标准库、STL的配置;Include其他头文件

举报
风吹稻花香 发表于 2021/06/04 23:56:59 2021/06/04
【摘要】 原文: Android学习笔记——NDK中C++标准库、STL的配置;Include其他头文件 1、STL的使用,以stlport为例 官方的说法是只需要在Application.mk文件中添加如下一行即可 Application.mk代码   APP_STL := stlport_static&...

1、STL的使用,以stlport为例
官方的说法是只需要在Application.mk文件中添加如下一行即可
Application.mk代码   收藏代码
  1. APP_STL := stlport_static  

即可,可是如果真只是这么做Eclipse中会提示找不到头文件!!!
还可以用GNU的标准库,参见ndk/docs/APPLICATION-MK.html文件中对APP_STL选项的说明。

找不到头文件的原因可能是Eclipse的代码提示功能在寻找头文件时可能并不会识别Application.mk中的配置。于是乎,还需要在工程的property中设置一下头文件所在路径。 看到第二行那个万恶的system路径了吧,那个不支持stl等功能的默认C++库的路径。。。。




附上自己实际使用的Application.mk文件
Application.mk代码   收藏代码
  1. APP_ABI := x86 #只生成x86架构的CPU用的lib,要生成所有平台的可以改为all    
  2. #APP_STL := stlport_static  
  3. NDK_TOOLCHAIN_VERSION=4.7 #使用GCC4.7  
  4. APP_STL := gnustl_static #GNU STL  
  5. APP_CPPFLAGS := -fexceptions -frtti #允许异常功能,及运行时类型识别  
  6. APP_CPPFLAGS +=-std=c++11 #允许使用c++11的函数等功能  
  7. APP_CPPFLAGS +=-fpermissive  #此项有效时表示宽松的编译形式,比如没有用到的代码中有错误也可以通过编译;使用GNU STL时不用此项std::string 居然编译不通过!!  


2、添加其他头文件
cpp文件没试。只是添加头文件! 跟添加stl支持一样,要在工程属性添加头文件路径。不过上面那个不知道是不是只是给IDE看的。。。google作的一致性还不够啊。。。
好吧,于是乎,还要在Android.mk中添加头文件路径,如:

Android.mk代码   收藏代码
  1. LOCAL_C_INCLUDES :=$(LOCAL_PATH) D:\cppHeaders\Include  

重新声明下,需要改两个地方:
  • 1、在工程属性添加头文件路径
  • 2、在Android.mk的LOCAL_C_INCLUDES项中添加头文件路径

3、编译器抽风的时候。。。
原本明明编译通过的代码又报错。。。。果断直接删除obj文件夹下的文件重新编译。
Good luck!!

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/73506025

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。