CMAKE_MAKE_PROGRAM не найден - PullRequest
54 голосов
/ 26 мая 2011

Я достиг конца моей веревки с Cmake; у него такой большой потенциал, но я не могу заставить его найти базовые системные инструменты (например, «make») для функционирования.

ПРИЗНАКИ

Cmake и графический интерфейс Cmake выдают следующее (после удаления файла CMakeCache.txt):

Processing top-level CMakelists.txt for project swb
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".
CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.

Я сосредоточен на поиске «make» в этом вопросе, однако у меня также было много таких же проблем, когда CMake не мог найти библиотеки и другие служебные файлы (linker, nm, ar и т. Д.). Методы, которые я перечислю ниже, позволяют CMake находить эти файлы при работе под Linux.

СИСТЕМА

Windows 7 (64-разрядная версия); несколько версий MinGW (32-бит / 64-бит); Cmake 2,8,4; НЕСТАНДАРТНОЕ место установки MinGW (c: / MinGW-32).

Вещи, которые я испытал

  1. CMakelists.txt содержит «SET (CMAKE_MAKE_PROGRAM c: /MinGW-32/bin/make.exe FORCE)» в первых 10 строках файла.

  2. Предыдущие версии CMakelists.txt содержали:

    find_program(CMAKE_MAKE_PROGRAM
      NAMES make
            make.exe
      DOC "Find a suitable make program for building under Windows/MinGW"
      HINTS c:/MinGW-32/bin )  
    
  3. Установите CMAKE_MAKE_PROGRAM в переменной среды cmd.exe перед запуском CMake или CMake-GUI.

  4. Использование файла "toolchain", который идентифицирует CMAKE_MAKE_PROGRAM, а также CMAKE_C_COMPILER и т. Д.

ТО, ЧТО РАБОТАЕТ

CMake успешно создаст файлы сборки, ЕСЛИ я использую графический интерфейс для заполнения переменной CMAKE_MAKE_PROGRAM ("C: /MinGW-32/bin/make.exe").

вопрос (ы)

Я могу заставить работать CMake, если идентифицирую имя программы make через GUI. Как разрешить CMake найти мою программу make без вмешательства пользователя с помощью комбинации Windows 7 (64-битная) / MinGW?

Ответы [ 16 ]

29 голосов
/ 27 мая 2011

У меня есть два предложения:

  1. Есть ли в вашей переменной среды% PATH% make?В моей системе мне нужно добавить% MINGW_DIR% \ bin в% PATH%.

  2. У вас установлен make?В зависимости от вашей установки mingw, это может быть отдельный пакет.

  3. Последнее средство: Можете ли вы указать полный путь для создания в командной строке?cmake -D"CMAKE_MAKE_PROGRAM:PATH=C:/MinGW-32/bin/make.exe" ..\Source

21 голосов
/ 01 ноября 2012

В графическом интерфейсе установите флажок «Дополнительно». Теперь должно появиться несколько записей ниже. Переименуйте файл mingw32-make.exe в make.exe (вы можете просто сделать копию) и задайте для переменной CMAKE_MAKE_PROGRAM filepath местоположение указанного файла.

11 голосов
/ 26 сентября 2013

Только что решил ту же проблему.У меня был MinGW с GCC и G ++, но не сам Make.Поэтому эта команда помогла мне:

mingw-get.exe install mingw32-make

Затем очистите кэш CMake (CMakeCache.txt в рабочем каталоге CMake) и снова запустите CMake.

5 голосов
/ 18 июля 2016

Я попытался установить недостающие пакеты. Установка toolchain и перезапуск CLion решили все в моем случае:

pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-gdb
pacman -S mingw-w64-x86_64-toolchain
5 голосов
/ 17 апреля 2015

Предыдущие ответы предлагали (пере) устанавливать или настраивать CMake, все они не помогли.

Ранее при компиляции MinGW в Make использовалось имя файла mingw32-make.exe, а теперь оно make.exe. Большинство предлагаемых способов настройки CMake для использования другого файла не работают.

Просто скопируйте make.exe и переименуйте копию mingw32-make.exe.

3 голосов
/ 13 марта 2014

У меня была точно такая же проблема, когда я пытался скомпилировать OpenCV с Qt Creator (MinGW) для создания файлов статической библиотеки .a .

Для тех, кто установил Qt5.2.1 для 32-битной Windows (MinGW 4.8, OpenGL, 634 МБ) , эту проблему можно исправить, если добавить в системную переменную среды следующее: Path:

C:\Qt\Qt5.2.0\Tools\mingw48_32\bin
3 голосов
/ 15 марта 2012

Недавно у меня возникла такая же проблема (Компиляция OpenCV с CMake и Qt / MinGW на WIN764)

И я думаю, что я решаю эту проблему, включая переменную окружения PATH (через Control Panel\All Control Panel Items\System\Advanced Sytem Settings) с помощью% MINGW_DIR% \ bin и% CMAKE_DIR% / bin

Кроме того, я установил cmake2.8 в простой каталог (без пробелов на нем)

1 голос
/ 01 октября 2014

У меня была такая же проблема, и я указал CMAKE_MAKE_PROGRAM в файле цепочки инструментов, cmake не нашел его. Затем я попытался добавить -D CMAKE_MAKE_PROGRAM = ... в командной строке, тогда это сработало. Затем я попытался изменить генератор с «MakeGiles MinGW» на «Makefiles Unix» и удалил -D CMAKE_MAKE_PROGRAM из командной строки, и тогда он также работал!

Так что по какой-то причине, когда для генератора задано значение «MinGW Makefiles», настройка CMAKE_MAKE_PROGRAM в файле цепочки инструментов не действует, но для генератора «Unix Makefiles» это так.

1 голос
/ 02 сентября 2013

Ну, если это полезно, у меня было несколько проблем с cmake, включая эту.Все они исчезли, когда я исправил глобальную переменную (в моем случае кодовые блоки MinGW) PATH в системе.Когда установка кодовых блоков не по умолчанию и по какой-то неизвестной причине, эта глобальная переменная не указывает на правильное место.Проверьте правильность пути кодовых блоков или MinGW:

Щелкните правой кнопкой мыши «Мой компьютер»> «Свойства»> «Дополнительные свойства» или «Дополнительно»> «Переменные среды»>, чтобы изменить переменную «PATH»

Это сработало для меня;)

1 голос
/ 25 декабря 2012

У меня была такая же проблема.Установлен mingw с помощью установщика, предоставленного в http://tdm -gcc.tdragon.net / .Он добавляет правильные переменные среды в путь при установке mingw (нет необходимости редактировать переменную пути вручную).Это помогло мне.

...