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 ...
随机推荐
- Node 之 Express 学习笔记 第一篇 安装
最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架. 现在关于web开发框架除了Express 还有新出的 KOA以及其它一些. 但是想想还是先从 Express 入手吧.因为比较成 ...
- 关于DEDECMS目录移动方法
最近在做一个美容医院的站,由于我的本地的PHP服务器上有几个站,又不能放在根目录下,只能在根目录下新建一个目录来存放这个站,于是就有了这篇文章. 如果我们直接将根目录下的A文件夹下的DEDECMS文件 ...
- sys.argv[]用法
#-*- coding: utf-8 -*- """ sys.argv 用来获取命令行参数 sys.argv[0] 表示当前执行文件 "-k".sta ...
- 2014/09/30 Learning Note
Vbird Linux: Vim Learning: http://linux.vbird.org/linux_basic/0310vi.php Bash Shell: http://linux.vb ...
- 如何将BarTender内容锁定不让改动
条码标签代表的是产品的特性等,具有相当的精确性,所以需要保证它的正确性.而使用BarTender软件,可以帮助小伙伴将设计的条码标签内容锁定,保护它而不被人改动.下面,小编就教教大家如何实现BarTe ...
- MAC——laravel环境
apache: 目录:etc/apache2 重启:sudo apachectl restart PHP: 把/etc/php.ini.default复制并重命名/ect/php.ini 打开Load ...
- Obj-C的hello,world 1
不得不说,Obj-C所谓的中缀表达式真的蛮奇怪的,当无参或者只有一个参数时看起来还不错: //无参数的方法 -(void) say; [employee say]; //只有一个参数的方法 -(voi ...
- Jcrop 做图片剪裁 在IE中无法显示问题解决办法
我遇到的Jcrop做剪裁无法显示的问题 是在IE8下发生的(在 firfox he chrome 中是显示正常的) 解决办法 是在一个图片加载完成后在 初始化 Jcrop:1.预加载图片的方法 var ...
- Oracle OCI-22053:溢出错误
Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle 数值转换 为公共语言运行库数据类型时,小数点后边的位数可能过多,这会导致此错误. 查询29万笔数据,报此错误,分析应该 ...
- Ultra-QuickSort (poj 2002)
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...