android studio c++ 自动补全
这两天弄起来了Android ndk,可这东西的配置实在是个问题。对于Eclipse可以通过makefile进行编译,也比较成熟。但是对Android studio来说就蛋疼了,官方是想通过gradle来实现自动编译,确实这种方式也比较省事,但是无耐对于NDK的支持studio现在还是个实验性的功能,网上的教程大部分都是1.3版本的配置方案,而且很初级。官方教程只找到了studio 2.2预览版的。所以只能自己摸索了。
先说一下gradle中的配置
在defaultConfig中添加一个ndk{}
ndk{}可添加的属性如下:
moduleName "xxx" 编译后so库的名字
ldLibs "xxx" "xxx" .... 连接的库,可以有多个
abiFilters "xxx" "xxx" so库运行的cpu架构,有armeabi armeabi-v7a arm64-v8a x86 x86_64 mips mips64这些,常用的是armeabi和armeabi-v7a
stl "xxx" C++ runtime support library,共有九种
cFlags "xxx" "xxx" ... 编译选项
C++ runtime support library的选择如下

默认是libstdc++,这个库之提供了最小的对c++的支持,比如new delete 这些操作,可以看Features那一栏。
_static结尾的是静态连接,_shared结尾的属于动态链接
studio中在新建c/c++ source file的时候会有一个选择文件后缀的选项,它默认的就是.c后缀是c语言文件,.cpp后缀的是c++文件。如果在.c文件中写c++的语法会提示错误,而且编译也报错。所以遵守就好了。
c++ stl库的自动补全
studio的编辑器的默认搜索路径是 ndk路径/platforms/android-xx/arch-xx/usr/include 这里边都是c的语言的东西,所以我们include c++标准库的头文件会提示找不到,但是编译可以过。
在写c++的代码时,首先在gradle的中配置用的c++支持库,比如
stl "gnustl_shared"
然后添加编译选项
cFlags "-IE://android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/include"
这个E://android-ndk-r12b是我ndk安装路径,在sources/cxx-stl文件夹下是各个c++支持库的文件夹,用哪个就输哪个的路径
然后重新构建一下项目,这时studio就可以识别c++标准库的头文件了。
最后引用关于使用Android Studio 开发NDK项目生成.h文件方法的方法
在Android studio环境下开发生成.h文件的正确姿势
1, 从Android Studio的Terminal里进入到, <Project>/src/main/java 目录下
2, 执行javah XXX.XX.XXX 即可, XXX.XX.XXX是要生成.h文件的完整路径名,包名+文件名
3, 然后就会在当前目录下生成相应的.h文件。
*无需切换到build/intermediates/classes/debug/文件夹下,也无需配置-classpath环境变量
android studio c++ 自动补全的更多相关文章
- eclipse自动补全的设置
eclipse自动补全的设置 如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的 ...
- Eclipse自动补全设置
如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的自动补全没有VS那么好是因为ecl ...
- eclipse自动补全的设置(自动提示)
如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的自动补全没有VS那么好是因为e ...
- 反人类的MyEclipse之-MyEclipse代码自动补全
如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的自动补全没有VS那么好是因为ecl ...
- [转载]启用 VIM 中的 Python 自动补全及提示功能
转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studi ...
- (转)eclipse自动补全的设置
如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的自动补全没有VS那么好是因为ecl ...
- Android Studio 设置代码提示和代码自动补全快捷键--Eclipse 风格 - 转
首先本文转自http://blog.csdn.net/csdnzouqi/article/details/50454703,是为了方便以后查看这些设置,最后在这里感谢原博主. 为了能跟上技术发展的脚步 ...
- Android 自动补全提示输入AutoCompleteTextView、 MultiAutoCompleteTextView
以在搜索框搜索时,自动补全为例: 其中还涉及到一个词,Tokenizer:分词器,分解器. 上效果图: MainActivity.java: package com.joan.testautocoml ...
- Visual Studio Code使用typings拓展自动补全功能
转自:http://blog.csdn.net/liyijun4114/article/details/51658087 参考来源: 官方介绍: https://code.visualstudio.c ...
随机推荐
- Spring MVC 获取前端参数的注解
在与前端交互的开发过程中,出现过几次无法取到参数的情况,费了些时间去排查问题,下面就简单总结一下. 注解详解 我们所要获取的前端传递参数大概可以分为以下四类: requet uri 部分的注解:@Pa ...
- H5中需要掌握的 ANIMATION 动画效果
CSS3的动画在PC网页上或者APP上用得越来越多,比如H5页面的应用,目前在营销传播上的意义比较大,还有企业官网或者APP主要介绍也用得比较多,当然还有很多地方都用到.所以学习css的动画也迫在眉睫 ...
- angular post发送请求和GET发送请求,服务器端接收不到信息的问题
参数可能因为编码原因,服务器端无法接收到传递的值, 这时需要用到补丁来解决这个问题 1,下载一个http.patch.js文件,放入YII框架中的js/ng文件架内 2angularjs 创建模型部分 ...
- iptables的设置
一.filter表防火墙(过滤器) iptables -A ( INPUT OUTPUT ) -s 192.1680.1.200 -p ( TCP UDP ICMP ) -i ( eth0 eth1 ...
- 在 LINQ to Entities 查询中无法构造实体或复杂类型
public List<CustomerType> GetCustomerTypesBySchemaTypeCode(int schemaTypeCode) { var query = ( ...
- 操作Json
C#可以像Javascript一样操作Json 阅读目录 Json的简介 Json的优点 传统操作Json 简易操作Json Json的简介 JSON(JavaScript Object Notati ...
- iOS的app 中的 埋点
埋点 就是 挖个坑把 种子埋到土里 然后浇水 等待发芽 埋点就是 ,鬼子要进村,我们埋下地雷 埋点就是 小说中 作者欲扬先抑 或者欲擒故纵 设下的伏笔... 好了,用文学的手法很好的 解释了一 ...
- 安装 mysql server
三个月前向公司申请了一台服务器单独给我用,作为部署我写的自动发布工具的服务器.同事不久前在我这台服务器上装了个数据库,今天上去查了一下,用不了,只有information_schema和test两个数 ...
- ps使用方法续
1.找一张皱折的背景,将需要制作的照片拖入背景层,调整尺寸并裁剪,使之 与背景边框相配, 2.调整-色相饱和度,全图:饱和度-35,明度+10, 3.调整图层改成柔光模式,出来旧照片的效果了, 4.色 ...
- ubuntu各版本的区别
ubuntu.kubuntu以及xubuntu的区别Ubuntu默认是Gnome:KUbuntu用的是KDE,效果比较炫目,但是系统要求也较高XUbuntu用的是Xface,比较轻量,系统要求较低,推 ...