Подтвердить что ты не робот

CMAKE_MAKE_PROGRAM не найден

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

СИМПТОМЫ

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

4b9b3361

Ответ 1

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

  • У вас есть переменная среды% PATH%? В моей системе мне нужно добавить% MINGW_DIR%\bin в% PATH%.

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

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

Ответ 2

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

Ответ 3

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

mingw-get.exe install mingw32-make

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

Ответ 4

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

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

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

Ответ 5

Я попытался установить недостающие пакеты. Установка инструментальной цепочки и перезапуск 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

Ответ 6

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

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

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

Ответ 7

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

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

C:\Qt\Qt5.2.0\Tools\mingw48_32\bin

Ответ 8

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

Ответ 9

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

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

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

Ответ 10

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

Поэтому по какой-то причине, когда генератор настроен на "MinGW Makefiles", параметр CMAKE_MAKE_PROGRAM в файле инструментальной привязки не эффективен, но для генератора "Unix Makefile" он есть.

Ответ 11

У меня была та же проблема, которая решена с помощью следующего:

Попробуйте переименовать все папки, чтобы они не превышали 8 символов и без пробелов.

Ответ 12

Это также происходит, когда я просто хочу скомпилировать opencv2.3.2 с помощью mingw32 (в наборах tdm-gcc). Часто, когда я устанавливаю tdm-gcc, я хотел бы переименовать файл mingw32-make.exe в make.exe. И я думаю, это может быть вопросом. Если cmake просят создать MinGW Makefiles, он попытается найти ming32-make.exe вместо make.exe. Поэтому я копирую make.exe в файл mingw32-make.exe и перенастраиваюсь в Cmake-gui. Наконец, это работает! Поэтому я хотел бы посоветовать выяснить, у вас есть mingw32-make.exe или нет, чтобы решить этот вопрос.

Ответ 13

Я попытался использовать CMake для создания GammaRay для Qt в Windows с помощью mingw. Итак, у меня установлен Qt. И у меня была такая же проблема, как и у других пользователей.

Подход, который работал у меня, запускает cmake-gui из приглашения Qt build (ярлык, созданный установщиком Qt в папке "Пуск" \ "Все программы \Qt {QT_VERSION}".

Ответ 14

Кажется, у каждого есть другое решение. Я решил свою проблему следующим образом:

Когда я устанавливаю 64-битный mingw, он сам установил: "C:\Program Files\mingw-w64\x86_64-5.1.0-posix-seh-rt_v4-rev0\mingw64\bin"

Несмотря на то, что mingw-make.exe был на пути выше, один неверный charecter или длинный путь путали CMake. Я пытаюсь добавить путь к пути к среде, попытаюсь дать CMAKE как paramater, это не сработало для меня.

Наконец, я переместил сложный путь mingw-w64 в "C:/mingw64", чем установил путь к среде, перезапустил CMake. Проблема решена для меня.

Ответ 15

Мне пришлось добавить следующие строки в мой путь Windows, чтобы это исправить. CMAKE должен установить правильные пути при установке, если вы установите флажок. Скорее всего, это будет другое решение в зависимости от множества версий, которые можно установить.

C:\msys64\mingw32\bin
C:\msys64\mingw64\bin

Ответ 16

В Ubuntu, я думаю, мне не хватало компилятора. Исправлено с помощью:

sudo apt install build-essential