zoukankan      html  css  js  c++  java
  • CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set

    CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set

    报错原因:CMAKE_MAKE_PROGRAM 被指定了的指,不是合法的程序。

    具体说,CMAKE_MAKE_PROGRAM 可能被指定为了空值,或者指定为了不存在的文件路径;又或者,指定为了Ninja而Ninja可执行程序不在系统PATH环境变量里。

    解决办法:

    1. 确保cmake不是特别老,2.8.12的cmake会去找名为ninja-build而不是ninja的程序。推荐cmake>=3.15版本。

    2. 下载安装了ninja,并且放在了PATH环境变量中。

    3. 如果调cmake时同时指定了-GNinja-DCMAKE_MAKE_PROGRAM=(也就是后者为空)则也报错,应当去掉-DCMAKE_MAKE_PROGRAM

    通常用1、2就可以解决问题,3的情况是在Android Studio用gradle插件的7.0.0-alpha03版本时出现:

        dependencies {
            classpath 'com.android.tools.build:gradle:7.0.0-alpha03'
    	}
    

    并且我是用自行安装的cmake(放在了PATH)而不是SDK Manager里的cmake(太老了),而gradle会认为SDK Manager没装cmake因此CMAKE_MAKE_PROGRAM指定为空。
    目前解决办法是在 local.properties 中指定cmake路径

    sdk.dir=D:\soft\Android\sdk
    ndk.dir=D:\soft\Android\ndk-r21b
    cmake.dir=D:\soft\cmake-3.19.1
    

    (顺带想说从android gradle 3.6开始会绑定默认的NDK版本,也不太方便,在local.properties中一并指定了)

  • 相关阅读:
    bzoj1002/luogu2144 轮状病毒 (dp)
    bzoj1003/luogu1772 物流运输 (dijkstra+dp)
    bzoj1007/luogu3194 水平可见直线 (单调栈)
    [模板]群论
    http 协议媒体格式
    java加密类支持sha256,md5,HmacSha1,base64
    java逐行读写借助buffereader/bufferwriter
    java 基础io读写字节以及缓存读写字节
    java log4i.properties
    java 迭代器
  • 原文地址:https://www.cnblogs.com/zjutzz/p/14219997.html
Copyright © 2011-2022 走看看