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).
Вещи, которые я испытал
-
CMakelists.txt содержит "SET (CMAKE_MAKE_PROGRAM c: /MinGW-32/bin/make.exe FORCE)" в первых 10 строках файла.
-
Предыдущие версии 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 )
-
Установите CMAKE_MAKE_PROGRAM в переменной среды cmd.exe перед запуском CMake или CMake-GUI.
-
Использование файла "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?
Ответы
Ответ 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