看了看NDK的文档....里面总是莫名的会提下windows需要cygwin环境...

但是cocos2d-x3.0alpha1 中,

  编译samples的python脚本 cocos2d-x3/build/android-build.py

  或者新建工程的python脚本 cocos2d-x3/projects/<proj-name>/proj.android/build_native.py

  里面明显没有用到啥cygwin环境.

  

  python 里 设置了环境变量,然后执行了一条ndk-build命令,ndk编译就完成了.

  最后得出在CMD环境里执行NDK编译的命令:

  

E:\py\ccs\projects\jjj\proj.android>E:\T_GIT\android_dep\android-ndk-r8e\ndk-build -C E:\py\ccs\projects\jjj\proj.android NDK_MODULE_PATH=E:\py\ccs;E:\py\ccs\external;E:\py\ccs\cocos ANDROID_SDK_ROOT=E:\T_GIT\android_dep\adt_bundle-windows-x86-20130717\sdk NDK_ROOT=E:\T_GIT\android_dep\android-ndk-r8e NDK_TOOLCHAIN_VERSION=4.7

  ccs 是cocos2d-x根目录

  jjj 是新建工程名字

  NDK_ROOT 是NDK根目录

  NDK_MODULE_PATH 是 工程jjj/proj.android/jin/Android.mk里依赖的cocos库的 Android.mk 查找路径

    $(call import-module,SDL2-2.0.1) 这样的外部依赖,后面的SDL2-2.0.1只能填相对于NDK_MODULE_PATH的绝对路径

    不能填写依据LOCAL_PATH等推理出来的相对路径.

  ANDROID_SDK_ROOT 是android SDK根目录.

  在jjj/proj.android目录执行命令可以不用 -C 指定jni目录.

  NDK跟目录设置到windows PATH的话,可以直接用ndk-build,不用全路径

--------------------------------------

python脚本中 ,NDK_MODULE_PATH 、NDK_ROOT 、ANDROID_SDK_ROOT 都设置到了python的环境变量里

    这点比较特殊,在windows 环境变量中增加这些名字的环境变量,没有作用,或者引用环境变量方法不对...

    如果没在CMD命令中指定这些值,编译会报各种找不到的错误.

    但这些设置的变量在python的环境变量os.environ中可以找到.

    (2013-12-22 11:43:07 windows 环境变量使用方法: %NDK_ROOT%  ,也使用echo输出)

------------

最后,

  理解了下NDK在windows平台下的编译,

  用python脚本真的很方便.

Android-NDK编译:cocos2d-x(二)的更多相关文章

  1. android NDK编译(导入).a文件和编译多个so文件(转)

    源:android NDK编译(导入).a文件和编译多个so文件 一.编译一个静态库 libstatic_android.a LOCAL_PATH := $(call my-dir) include ...

  2. Android NDK编译之undefined reference to 'JNI_CreateJavaVM'

    利用Android NDK编译动态库,在C文件中调用了两个JNI函数:JNI_GetDefaultJavaVMInitArgs和JNI_CreateJavaVM.编译的时候始终报以下错误: XXX: ...

  3. 使用android ndk编译x86 so在linux下使用的问题

    一直以为android ndk编译x86 so库可以在linxu下运行,结果我试了几次都行不通.后来想了一下,android ndk编译的库应该只能在android设备或模拟器上运行才有效,后来改用 ...

  4. [原]如何用Android NDK编译FFmpeg

    我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的ND ...

  5. Android NDK 编译FFmpeg(不需要复杂的环境变量设置)

    环境: CentOS6.2——64位 借鉴:https://vec.io/posts/how-to-build-ffmpeg-with-android-ndk 在根目录下创建work文件夹:cd  / ...

  6. android ndk编译项目(android-ndk-16r1)

    由于采用android-ndk-16r1版本的ndk来编译 编译的环境之类在这里省略,注意是最后编译的命令如下 Administrator@WIN-AF6P80LVIJ0 ~ $ cd $ANDROI ...

  7. Linux环境下使用Android NDK编译c/c++生成可执行文件

    1.安装Android NDK至Linux(Lubuntu 16) 从网上下载 android-ndk-r13b-linux-x86_64.zip,本人将其解压至/home/guanglun/work ...

  8. android ndk 编译的时候指令集的选取

    android ndk在编译的时候默认生成的是thumb指令(拇指)不是arm(手臂)指令,但是有时候在看反汇编的时候,不太熟悉thumb指令或者说thumb指令看起来更费劲,需要生成arm指令,这个 ...

  9. 用Android NDK编译FFmpeg

    附(2018-01-06):     有一个将x264及lame等库集成进去了且基于android的ffmpeg的编译方法,地址参见:       https://github.com/writing ...

  10. android ndk 编译 libevent

    1. 下载 libevent 2.1.8 版本 https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/ ...

随机推荐

  1. [stm32][ucos][ucgui] 2、LED闪烁、串口、滑块、文本编辑框简单例程

    上一篇:[stm32][ucos] 1.基于ucos操作系统的LED闪烁.串口通信简单例程 * 内容简述: 本例程操作系统采用ucos2.86a版本, 建立了7个任务            任务名   ...

  2. Linux:软件安装

    Linux 上的软件安装 四种安装方式 在线安装 从磁盘安装盘deb软件包 从二进制软件包安装 从源代码编译安装 在线安装 在不同的linux发行版上面在线安装方式会有一些差异包括使用的命令及它们的包 ...

  3. 无线客户端框架设计(5):调用MobileAPI的设计(iOS篇)

    这一节讲如何发起网络请求. iOS用于调用MobileAPI的第三方组件很多,我们这里采用的是以下组件: 1)ASIHTTPRequest,用于请求MobileAPI:http://allseeing ...

  4. js图片时间翻转

    带素材 代码一: <!-- Author: XiaoWen Create a file: 2016-12-12 10:08:02 Last modified: 2016-12-12 11:30: ...

  5. Cocoa编程开发者手册

    Cocoa编程开发者手册(Objective-C权威著作超一流翻译阵容) [美] 奇斯纳尔(Chisnall,D.)  著 霍炬等 译 ISBN 978-7-121-12239-2 2013年7月出版 ...

  6. iOS-APP发布应注意要点

    Android和IOS的app发布的流程有一个相同之处,就是都需要先将编译好的app签名,然后上传到market里,但两者的复杂度是冰火两重天.Android可以手动通过集成在eclipse里的工具进 ...

  7. mysql优化之表建设

    就拿常见的用户表.文章类的表.日志表来分析如下 CREATE TABLE `user` (   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMEN ...

  8. hdu1875 畅通工程再续 最小生成树并查集解决---kruskal

    http://acm.hdu.edu.cn/showproblem.php?pid=1875 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...

  9. 通过ReadWriteReentrantLock源代码分析AbstractQueuedSynchronizer共享模式

    1.特点 ReentrantLock能够实现共享资源的互斥访问,但是它在某些条件下效率比较低下.比如,多个线程要查询(或者说读取)某列车的余票数,如果使用ReentrantLock,那么多个线程的查询 ...

  10. 在Eclipse中使用MAT分析Android程序内存使用状况(转)

    对于Android这种手持设备来说,通常不会带有太大的内存,而且一般用户都是长时间不重启手机,所以编写程序的时候必须要非常小心的使用内存,尽量避免有内存泄露的问题出现.通常分析程序中潜在内存泄露的问题 ...