我是cocos-2dx菜鸟,最近想要学着弄弄这一强大的游戏引擎时却被困住了。在我想要编译我的链接库时总是
Are you sure your NDK_MODULE_PATH variable is properly defined。
然后我根据网上各种教程都试了一遍依旧不行,最后终于黄天不付苦心人,我发现了解决之道。当然有些教程可能有效,不过他们是eclipse做编译的,我用的是命令行有些不一样。
原因:
出现这个的原因是,因为在编译的时候它要引用cocos的Android.mk文件,而它使用的是相对于NDK_MODULE_PATH这个路径的相对路径,所以要是你不设置好这个参数,它会因为找不到mk文件而没有办法编译。
解决办法:
解决办法当然是设置正确的NDK_MODULE_PATH咯,
1.找到cocos目录下的smaple在任何一个例子下面的Cpp例子中找到那个build_native.sh脚本,在cygwin环境中执行这个shell脚本,它就会给你设置好path的值
不过这个我尝试过,有问题,它自动生成的值是类似于D:\cocos-2d\cocos2d-2.1rc0-x-2.1.2这样的值,我的cygwin不认。我想稍微了解cygwin的人都知道这是一个在Windows平台提供linux环境的这么一个东西,而linux的目录表示方式是 /cygdrive/d/cocos-2d/cocos2d-2.1rc0-x-2.1.2这样一个方式,所以在编译的时候它就不认识这个路径。同时在Windows平台环境变量的引用是%变量名%分隔则是用;(英文的分号)而在Linux平台中则是$变量名 分隔用:(英文的冒号)所以我的机器上执行了这个shell脚本后NDK_MODULE_PATH的值仍然不对。对于那些用这个方法而值是正确的同学,看看你们生成的path是linux下的形式还是Windows下的形式。这个或许行哦,我不能反驳大牛
2.也就是我的方式,将我们需要的环境变量(/cygdrive/d/cocos-2d/cocos2d-2.1rc0-x-2.1.2:/cygdrive/d/cocos-2d/cocos2d-2.1rc0-x-2.1.2/cocos2dx/platform/third_party/android/prebuilt)在Windows的环境变量里新建一个即可.注意:其形式是linux环境变量的形式
如下图
3.最直接的办法
用这个方法你可以把你想要的环境变量都这样设置,那就是编辑你<cygwin所在目录>/home/<你的用户名>/.bash_profile,用这种方式,你可以直接了当修改 你在使用ndk或者是cocos2d又或者是其他什么东西就像你在使用linux那样注意那个NDKRoot你可以任意写,也可以直接把它的值加到path里