Установите CMAKE_MAKE_PROGRAM в mingw32-make изнутри CMakeLists.txt - PullRequest
0 голосов
/ 08 апреля 2020

После этого сообщения , если я запускаю cmake .. в своей папке build без параметров, я получаю сообщение об ошибке:

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_Fortran_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

, которое можно решить, запустив

cmake .. -D CMAKE_MAKE_PROGRAM:PATH=/mingw64/bin/mingw32-make

Однако я хочу установить CMAKE_MAKE_PROGRAM из файла CMakeLists.txt. Я попробовал

if(MSYS)
  set(CMAKE_MAKE_PROGRAM /mingw64/bin/mingw32-make)
endif(MSYS)

, но он не работает. Буду признателен, если вы поможете мне узнать, как я могу решить эту проблему.

PS1. Здесь - код.

PS2. Я попробовал

set(CMAKE_MAKE_PROGRAM /mingw64/bin/mingw32-makemingw32-make CACHE FILEPATH "" FORCE)

, как предложено в комментариях, но это не помогло.

PS3. Моя операционная система Windows 10 версии 1909, и я выполняю вышеуказанные команды в терминале MSYS2 MSYS_NT-10.0-18363

1 Ответ

1 голос
/ 09 апреля 2020

Хорошо, я думаю, что решил проблему. Начиная с здесь , мне нужно было установить MSYS2 make:

pacman -S make

Это тоже похоже на тренд. У меня недавно было несколько проблем в MSYS2, которые были решены путем удаления пакета MinGW и замены его пакетом MSYS2. Так что это говорит мне, что при работе внутри MSYS2 я должен отдавать предпочтение пакетам MSYS2, если они доступны.

...