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中一並指定了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM