Использование cmake для Windows для С++

около 5 дней подряд я пытаюсь настроить свой компьютер с помощью среды С++ для программирования с такими библиотеками, как sdl, glm, opengl. это важно для нас, чтобы иметь возможность запускать его на машинах unix на презентациях, чтобы я работал с cmake. Я, наконец, получил его для работы с cmake-gui, я даже не буду больше пытаться попробовать с любой IDE.

Я указал проект моей папки и где для сборки двоичных файлов, я получил папку "CMakeFiles" вместе с txt "CMakeCache", файл CMAKE "cmake_install.cmake" и файл "Makefile". также в моей папке "CMakeFiles" есть много других папок, таких как "CMakeTmp", "CompilerIdC", "CompilerIdCXX и т.д.", и в обеих папках "Compiler *" есть каждый .exe, который не работает! так где мой желаемый исполняемый файл?

я открыл cmd и перешел к моей папке и попытался написать "make", как мы должны делать в соответствии с конструкцией. увы, он не работал очень хорошо. надеясь, что вы сможете поделиться своей мудростью и помочь новичкам, как я!

, что именно необходимо для компиляции проектов, содержащих дополнительные библиотеки? до сих пор у меня есть компилятор, Mingw32, последний CMake и использование cmake-gui для извлечения двоичных файлов, но получает make файлы.

EDIT: hrrm. это только я, кто сталкивается с такими проблемами? я могу добавить, что я внимательно изучаю около 10 обучающих программ, и 90% шагов аналогичны (если компилировать с помощью VS, который я пробовал сначала):

  • Загрузите последнюю версию SDL
  • Создайте папку, например, C:\SDL с двумя папками, include и lib
  • Скопируйте библиотеки и включите их из загруженного SDL
  • Создайте новый проект VS, откройте каталоги VС++ и добавьте папку lib/incl, например C:\SDL
  • Добавить в linker SDL.lib и SDLmain.lib(я убедился, что они связаны, здесь нет проблем)
  • Измените систему на WINDOWS (необязательно, если вы не хотите два окна)
  • Добавлены в "дополнительные библиотеки"
  • Поместите файл SDL.dll(который я получил из последнего SDL) в свой C:\windows\system32 (64SysWoW) а также в файле проекта.

то, что я действительно ищу, это gettning CMake для работы, поскольку он генерирует и строит источники успешно (с gui), и я чувствую, что я закрываю. Мне нужно добавить любые дополнительные библиотеки из sdl в мой компилятор mingw32 и/или cmake?

Ответ 1

Вы были почти там с Visual Studio. Выберите Visual Studio в качестве цели. Откройте сгенерированный проект в Visual Studio, создайте его. (точно так же, как вы это делали). Затем вместо того, чтобы пытаться запустить BUILD_ALL, запустите реальный проект, который создает исполняемый файл, он также должен быть в этом списке. Просто щелкните правой кнопкой мыши и "играйте".

Если вы все еще получаете ошибки, опубликуйте их подробно, включая то, что вы сделали до ошибки. Примечание. Тщательно сконфигурированный проект CMake для кросс-платформы (также известный как CMakeLists.txt) не требует каких-либо операций с каталогами VС++. Он должен работать автоматически, особенно с известными libs, такими как SDL.

Ответ 2

если вы запускаете cmake по команде:

cmake -G "Visual Studio 14 Win64" path\to\source\dir

вам нужно запустить эту команду для продолжения (в Командная строка Visual Studio):

msbuild Project.sln

если вы запустите cmake:

cmake -G "NMake Makefiles" path\to\source\dir

вам нужно запустить этот cmd для продолжения (в Командная строка Visual Studio):

nmake

Ответ 3

Если я правильно понял, вы хотите использовать CMake в своем проекте. Я использую CMake во всех моих проектах. Я не буду давать точные пошаговые инструкции, поскольку я использую Arch Linux, но я использовал его и в Windows 7.

  • Чтобы заставить CMake находить библиотеки, часто необходимо настроить переменную среды CMAKE_PREFIX_PATH, чтобы она указывала на каталоги, в которых установлены зависимости вашего проекта.
  • Задайте переменную среды PATH, чтобы вы могли вызывать ваш компилятор и выполнять только путем вызова, например, путем вызова. make. Мне кажется, что вам нужно сделать, чем вручную для Mingw32, для Visual Studio вы можете использовать "Visual Studio Command Propt", в котором уже установлены эти переменные.
  • Запустите CMake с нужным генератором. Для выбора генератора из командной строки используйте переключатель -G. Вероятно, вы используете одно из следующих (... означает другие параметры, которые вы хотите передать в cmake)

    Для использования GNU в MinGW используйте cmake -G "MinGW Makefiles" ...

    Для NMake из visual studio используйте cmake -G "NMake Makefiles" ...

    Также возможно создать проект Visual Studio, но я не рекомендую его, так как тогда довольно сложно настроить автоматические сборки. У меня также были некоторые проблемы с зависимостями, когда я пытался использовать проект VS.

  • смените каталог на каталог сборки (т.е. тот, где вы назвали cmake, он содержит файл CMakeCache) и запустите make или nmake

Ответ 4

Цитата изподдержки CMake в Visual Studio":

Visual Studio 2017 представляет встроенную поддержку для обработки проектов CMake. Это значительно упрощает разработку проектов C++, созданных с помощью CMake, без необходимости генерировать проекты и решения VS из командной строки. В этой статье дается обзор поддержки CMake, как легко начать работу и оставаться продуктивным в Visual Studio.