今天刚成功运行cocos2d-x中的test与helloWorld。废话不多说。记下所有走过的弯路 ,帮助后来人。这里只从cygwin开始说起,譬如最初的eclipse+jdk+sdk+cdt等就不介绍了。
楼主安装时google、baidu很多网页,上来就介绍怎么安装,最后由于版本问题解决不了问题。这里是楼主自己安装经历,所用NDK版本为ndkr7b。
ndk版本要注意,很多资料都没提版本。结果浪费大家时间如有命令host-setup等,这些在ndkr4之后好像就不用了。
第一步:
安装cygwin,避免出问题,选择默认安装。
第二步:
安装完配置环境变量:path=C:\cygwin\bin;
第三步:
如果C:\cygwin\home文件下什么都没有,那么首先打开环境变量,把里面的用户变量中的HOME变量删掉,在C:\cygwin\home文件夹下建立名为Administrator的文件夹(是用户名)
如果C:\cygwin\home\andy目录下没有.bash_profile文件,那么将C:\cygwin\etc\defaults\etc\skel 下.bash_profile拷贝过去,andy为电脑用户名。然后在最后添加
NDK_ROOT=/cygdrive/g/android-ndk-r7b export NDK_ROOT,其中g/android-ndk-r7b为楼主ndk路径,NDK_ROOT这名字随便取的。
可能需要注意的,楼主打开该文件最初用写字板,添加后cygwin运行有错。后改为记事本打开,添加OK。写字板可能会有空格什么的(不保证正确)。
第四步:
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
然后依次输入gcc –v,g++ --version,make –version,gdb –version进行测试,(注意空格和-)如果都打印出版本信息和一些描述信息,那么cygwin安
装完成了!
接下来就是编译cocos2d-x的helloworld了。
官网上使用ndk4、ndk5,这里是使用ndkr7b。操作会简单很多,但是出了些小问题也是很坑人的。
第五步:
将ndkR7中g:\android-ndk-r7b\sources\cxx-stl\gnu-libstdc++\libs\armeabi下
libgnustl_static.a拷贝到G:\cocos2d-1.0.1-x-0.11.0\HelloWorld\android\obj\local\armeabi。(当然是没有才拷贝)。
第六步:
G:\cocos2d-1.0.1-x-0.11.0\HelloWorld\android下build_native.修改设置
NDK_ROOT_LOCAL=/cygdrive/d/android-ndk-r7b
COCOS2DX_ROOT_LOCAL=/cygdrive/g/cocos2d-1.0.1-x-0.11.0
第七步:
如果运行包如下错误:
rebuilt : libgnustl_static.a <= <NDK>/sources/cxx-stl/gnu-
libstdc++/libs/armeabi/
SharedLibrary : libcocos2d.so
D:/android/android-ndk-r7/toolchains/arm-linux-androideabi-
4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-
androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/libgnustl_static.a: No such file: Permission denied
collect2: ld returned 1 exit status
/cygdrive/d/android/android-ndk-r7/build/core/build-binary.mk:312: recipe for
target `obj/local/armeabi/libcocos2d.so' failed
make: *** [obj/local/armeabi/libcocos2d.so] Error 1
在helloworld中找到Application.mk文件添加如下内容:STLPORT_FORCE_REBUILD := true
这个好像是非管理员账户运行会报错。
打开cygwin。进入helloworld目录,运行命令:
$NDK_ROOT/ndk-build
这里NDK_ROOT为之前cygwin中配置。
这里我尽量完全按自己操作的记录,不漏掉一个细节。因为对于完全按照google来的资料操作的人,少一个命令或字母都可能浪费半天时间。
哎,配环境神马的最坑爹了。