虽然2代Cocos2dx是土埋半截的东西,但是各大源码站上2系的源码不在少数,而且现在搜编译方法,各种文章也比较乱,这里我总结下。
有些文章说要装cygwin那劳什子的玩意,那玩意我装过几次,都非常麻烦,而且自NDKr8e起就摆脱了对其的依赖,根本就不用装了。但是为什么还有人说要装呢?
我们线新建一个2.2.6的项目,用Eclipse打开它,会看到
没有找到bash这个东西。
bash是BSD架构下的批处理工具,在cygwin下包含有。
要这个有什么用呢?我们再看看Eclipse工程中的设置:
看到了吧,这个bash是用来执行项目目录中的build_native.sh文件用的。
这个build_native.sh使用时要做修改,如下图所示
在其中添加NDK_ROOT等,然后,你在项目目录下开个命令行窗口执行 bash build_native.sh就会执行编译过程(我在Linux下试过,确实有代码的编译过程,但是不知为何生成的apk文件大小为0B)。
你若是想在Eclipse下执行上述步骤可以不改build_native.sh的内容而是设置环境变量。
下面说说不用cygwin的编译方法:
NDK摆脱了对cygwin的依赖,不用bash了,那么用什么呢?答案就是:ndk-build!
这又是个什么玩意呢?咳咳~我想研究过安卓NDK开发的童鞋都知道它的作用,不知道的童鞋可以去从头开始联系下NDK的基础(其实我也是先学Cocos2dx,再看的NDK的)。
有些文章就说这样设置
我是直接这样:
直接在项目目录下设置NDK_MODULE_PATH和NDK的路径,执行下ndk-build就行了。
其中NDK_MODULE_PATH是不能改的,NDK_USE这个名字你可以随意。
注意哦:如果写错了要关了窗口重写哦!另外Resouces下的资源要手动拷贝到assert里面去哦!
ndk-build后面也可以添加诸如
APP_PLATFORM := android-19
APP_OPTIM := release
APP_CFLAGS += -Wall
APP_STL := gnustl_static
APP_ABI := armeabi-v7a
的参数,当然这些参数一般是写在.mk文件里的。
要用在Eclipse上的话就是这样:
再改一下编译方式:
这里有个错是没设置编译平台造成的