Cmake, Windows, MinGW, MSYS2
Смотрите.
я живу под виндой, разрабатываю на C++ и при этом я не пользуюсь ни Visual Studio, ни Microsoft'овским компилятором.
До сих пор очень хорошо себя проявлял установленный через MSYS2 пакет WinGW-64 с gcc - шными компилятором и дебаггером. А в качестве редактора - легковесная Visual Studio Code.
Однако, это порождает ряд проблем.
Мне очень тяжело собрать какой нибудь проект, взятый c github.
То, что в убунте делается тремя командами git clone - make - make install для меня выливается в несколько дней поисков и чтения форумов.
Сейчас я пытаюсь сделать следующее:
подавляющее большинство проектов собираются при помощи CMake.
То есть, сначала CMake, а потом уже make и make install
Но CMake, будучи запущенным под Windows, автоматически создает проект типа *.sln - солюшен для Visual Studio.
Я поискал - нашел вот такой вот вопрос-ответ
Но всё равно непонятно, как при запуске CMake сказать ему, чтобы он собирал проект для обычного make. Ну, или хотя бы для чего нибудь, что я могу использовать совместно с gcc.
Подскажите, пожалуйста, как правильно мучить CMake под виндой?
Спасибо.
Дополняю вопрос Мне @Fat-Zer любезно подсказал, что команда должна быть такой:
cmake -G "MSYS Makefiles" ..
Вот я беру hello world
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "Hello, World!" << std::endl;
return 0;
}
и такого же вида heelo world в смысле cmake: CMakeLists.txt:
project(HelloWorld)
cmake_minimum_required(VERSION 3.10)
add_executable(main main.cpp)
Запускаю cmake -G "MSYS Makefiles" .. (во временной вложенной директории), получаю:
CMake Error: CMake was unable to find a build program corresponding to "MSYS Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMake was unable to find a build program corresponding to "MSYS Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_AR was not found, please set to archive program.
-- Configuring incomplete, errors occurred!
Не могли бы Вы подсказать мне следующие шаги, что нужно сделать, чтобы проект для MSYS собирался?
Ответы (1 шт):
Запуская cmake с явным выбором генератора, как команда cmake -G "MSYS Makefiles" .., запускать её нужно в подходящей среде, т.е. в данном случае в шелле msys, или её эмуляции.
Посмотреть требования cmake можно в соответствующем модуле, в данном случае нужно посмотреть файл CMakeMSYSFindMake.cmake в котором имеются инструкции для поиска программы make и где она ищется.