Cocos2d-x3.2 执行build_native.py 显示couldn't find the gcc toolchains

解决方案:

1.将ndk文件夹名称android-ndk-r10c修改为androidndkr10c 只要不带横线就可以

2.修改环境变量中的NDK_ROOT路径,去掉原来的横线

即由D:\cocos\android-ndk-r9d  修改为 D:\cocos\androidndkr9d

分析如下:

用EditPlus打开build_native.py 

def select_toolchain_version():
    '''Because ndk-r8e uses gcc4.6 as default. gcc4.6 doesn't support c++11. So we should select gcc4.7 when
    using ndk-r8e. But gcc4.7 is removed in ndk-r9, so we should determine whether gcc4.7 exist.
    Conclution:
    ndk-r8e  -> use gcc4.7
    ndk-r9   -> use gcc4.8
    '''

    ndk_root = check_environment_variables()
    if os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.8")):
        os.environ['NDK_TOOLCHAIN_VERSION'] = '4.8'
        print "The Selected NDK toolchain version was 4.8 !"
    elif os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.7")):
        os.environ['NDK_TOOLCHAIN_VERSION'] = '4.7'
        print "The Selected NDK toolchain version was 4.7 !"
    else:
        print "Couldn't find the gcc toolchain."

        exit(1)


网上可能错误的解答.cocos2d-x3.2 只支持ndk r9. 因为ndkr10没有toolchains/arm-linux-androideabi-4.8"。其实ndkr10 到源文件看,什么都有,品类齐全。

网上正解:ndk_root不能有空格,是的。但是我检查了我的ndk_root没有空格啊。怎么办呢。。。焦急如焚。后来我想无论如何这个问题肯定是,python的os.path.isdir(os.path.join这两句无法读取我的NDK_ROOT。而我NDK解包的时候自动在文件夹中生成了android-ndk-r10c这个文件夹,是不是'-'.也不能放在NDK_ROOT中。我将NDK_ROOT从F:\developer\software\androidNDK\android-ndk-r10c改为F:\developer\software\androidNDK\r10c。哈哈哈  系统显示The Selected NDK toolchain version was 4.8 !编译通过了~


你可能感兴趣的:(显示,build_native.py,Cocos2d-x3.2)