Я достиг конца моей веревки с 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?