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 ...
随机推荐
- 谈谈 jQuery 中的防冲突(noConflict)机制
许多的 JS 框架类库都选择使用 $ 符号作为函数或变量名,jQuery 是其中最为典型的一个.在 jQuery 中,$ 符号只是 window.jQuery 对象的一个引用,因此即使 $ 被删除,w ...
- CSS实现DIV三角形
本文内容收集来自网络 #triangle-up { width:; height:; border-left: 50px solid transparent; border-right: 50px s ...
- php获取https下的内容
直接用file_get_contents,会报错: $url = ('https://xxx.com"); file_get_contents($url); 错误: Warning: fil ...
- C#.NET快速开发框架-企业版V4.0截图打包下载
C/S系统开发框架-企业版 V4.0 (Enterprise Edition) http://www.csframework.com/cs-framework-4.0.htm 其它图片打包下载: ht ...
- linux常用命令(4)rm命令
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西 ...
- getClassInstances --通过类的实例来得到数据
好东西,空了来研究 实例代码如下: for b in getClassInstances bitmaptex doformat "Name : %, Texture name : %, Af ...
- 关于git服务器的搭建
Git 服务器可搭建在多个系统平台上. 本篇以 Windows 和 Ubuntu 系统为例,简单介绍 Git 服务器的构建. 最后使用 eclipse 的 egit 插件和 git clone 这两种 ...
- 延长FLASH和EEPROM芯片写入次数的小方法
开发电子产品时,常常需要断电后保存某些数据,这就需要使用 FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次. ...
- 加载dll、lib库
2.是关于如何加载dll或lib库的.可以看这篇bog Qt调用dll中的功能函数点击打开链接 ************************************************** ...
- sed文本处理--文本行扩展与分割
原文件: 00 abc sdfdsf1 2 45 3 400 xfd xdfssdf3 322 345 234 处理后文件: 00 abc sdfdsf 1 2 400 abc sdfdsf 5 3 ...