Windows SublimeText内使用NDK编译Android so(不用cygwin)
測试环境:
sublime text version 2.0.2, build 2221 和 sublime text stable channel, build 3065 (version3)
Win7 64位
android-ndk-r10c windows x86_64
步骤:
1.设置好ndk环境变量
假如把ndk压缩包解压到D:\android-ndk-r10c,则
控制面板 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 选中 系统变量里的Path,点击 编辑 button -> 变量值末尾增加:
;D:\android-ndk-r10c
注意多个值之间有分号分隔。
一路按确定。
2.建好sublimeproject
最简单的方法是打开代码的根文件夹,然后点击菜单Project -> Save Project As... -> 起个名字保存在代码的根文件夹(保存位置是随意的,后面步骤中的路径对应改变即可)。
3.为project增加build_systems
sublime菜单 Project -> Edit Project -> 编辑文件并保存。编辑成这样:
{
"folders":
[
{
"follow_symlinks": true,
"path": "."
}
],
"build_systems":
[
{
"name": "ndk-build-subl2",
"cmd": "build.bat"
},
{
"name": "ndk-build",
"shell_cmd": "ndk-build -j5",
"working_dir": "${project_path}/android_project"
}
]
}
sublime text 2和3的情况不同,build_systems里有两个设置,依据你使用的版本号,保留当中一个即可。
当中,name为ndk-build的是sublime text 3用的,能够看到shell_cmd就是调用ndk-build,working_dir是设置命令行的初始路径,可填入androidproject的路径,当中${project_path}是sublime text的保留变量,指代此sublime textproject文件的文件夹(注意,sublime textproject路径和androidproject路径是两个概念,别混淆了)。
name为ndk-build-subl2是sublime text 2用的,我试了非常多遍都无法直接调用ndk-build,所以是先调用同文件夹下的build.bat脚本,此脚本的内容为:
cd android_project
ndk-build -j5
4.设置Build System
Sublime菜单 Tools -> Build System -> 选择 ndk-build 或 ndk-build-subl2。这里的新选项是读取了上一步所做的设置才会出现的。
到此就ok了,在菜单中选择Build或Ctrl + B就会编译了,sublime text自己主动会弹出窗体显示build的结果。
踩了几个坑才总结出来的,假设遇到问题欢迎留言交流。
PS:要在linux的sublimetext3编译so,改动"shell_cmd"为". ~/.bashrc;ndk-build -j5"就能够了,.bashrc要export ndk路径
转载请注明出处:http://blog.csdn.net/hursing
Windows SublimeText内使用NDK编译Android so(不用cygwin)的更多相关文章
- protobuf使用NDK编译Android的静态库(工作记录)
1.protobuf 编译过程 前提: 确保自己电脑上已经安装了cygwin + ndk, 并且NDK能够编译hello-jni成功 1.1 把protobuf 压缩包解压到protobuf文件夹下 ...
- macos下命令行通过ndk编译android下可以执行的ELF程序(并验证opencl的调用)
源码如下,实现把一个JPG保存成灰度图格式的BMP 1 //jpg2bmp.cpp 2 #include <stdio.h> 3 #include <inttypes.h> 4 ...
- ndk编译android的lame库
1.lame c库: https://github.com/intervigilium/liblame 下载后解压,进入目录,terminal里运行ndk-build即可 2.lame android ...
- 浅谈独立使用NDK编译库文件(Android)
阅读前准备 这是一篇相对入门的文章.文中会涉及到少许NDK的知识,但个人认为对初学者来说都相对比较实用,因为都是在平时项目中遇到的(目前自己也是初学者).一些其他高深的技术不再本文探讨范围之内(因为我 ...
- ndk 编译 c++ 兼容性问题汇总整理
转自:http://blog.csdn.net/wenrenwang/article/details/12003671 1.__int64找不到符号 采用int64_t来代替: #if defined ...
- 在Windows下使用nmake+Makefile+编译ZThread库(附例子)
----------2015/01/09/23:21更新----------------------------------- 关于保留DEBUG信息的一个简单例子,见这篇随笔 ----------2 ...
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- windows系统上安装与使用Android NDK r5 (转)
windows系统上安装与使用Android NDK r5 很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...
- [原]如何用Android NDK编译FFmpeg
我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的ND ...
随机推荐
- Linux下的lds链接脚本简介(三)
八. 内存区域命令 在默认情形下,连接器可以为section在程序地址空间内分配任意位置的存储区域.并通过输出section描述的> REGION属性显示地将该输出section限定于在程序地址 ...
- 被误解的MVC和被神化的MVVM
MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的客户端软件开发框架 ...
- PostgreSQL 序列
PostgreSQL 中的序列是一个数据库对象,本质上是一个自增器.因此,序列在其他同类型数据库软件中以 autoincrment 值的形式存在.在一张表需要非随机,唯一标实符的场景下,Sequenc ...
- [PReact] Reduce the Size of a React App in Two Lines with preact-compat
Not every app is greenfield, and it would be a shame if existing React apps could not benefit from t ...
- keil编译后Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588
Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588 Code : 程序中代码所占字节大小 RO-data : ...
- Android JAVA中的时间大小比较
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- CentOS7.1 KVM虚拟化之虚拟机快照(5)
这里用之前克隆的虚拟机vm1-clone进行快照操作 注: 1.快照实际上做的是虚拟机的XML配置文件,默认快照XML文件在/var/lib/libvirt/qemu/snapshot/虚拟机名/下 ...
- Snmp linux
http://blog.csdn.net/youngqj/article/details/7311849 http://blog.csdn.net/howema/article/details/418 ...
- USACO--2.1The Castle
思路:这个题目难在建图,開始的时候我想把每一个房间没有墙的面求出来,然后再和他邻近的房间加上一条边进行建图,后面发现要通过题目给定的条件求出房间那个面没有墙是十分困难的:后面參考了别人的思路,我们记录 ...
- NET中的System.Transactions(分布式事务)
NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的问题主要是使用了分布式事务,而无法访问到 ...