Cmake и визуальная студия

gcc 4.4.2/Visual Studio С++ 2008

Я использую cmake на linux, без проблем.

Теперь я портировал приложение для работы в Windows.

Я создал файлы решений с помощью cmake -G "Visual Studio 9 2008../src"

Однако я знаю, что cmake создает только Makefile, который используется компилятором для создания вашего приложения.

Я открываю свое решение в Visual Studio, я нажимаю клавишу F7 для компиляции.

Мне интересно, действительно ли он использует Makefile, который был создан cmake? Или это просто компиляция приложения, как любая нормальная программа визуальной студии?

Большое спасибо за любой совет,

Ответ 1

Cmake создает проект Visual Studio Solution и Project.

Решение содержит не менее трех проектов:

  • ALL_BUILD
  • YourProject
  • ZERO_CHECK

Решение настроено таким образом, что при создании проекта (с помощью решения сборки или проекта сборки) будет создан "YourProject", а затем будет создан ZERO_CHECK, заставив cmake запускаться и проверить, что-либо изменилось. Если что-то изменилось, файл решения и проекта будет регенерирован, а Visual Studio спросит, хотите ли вы перезагрузить.

Компиляция вашей программы выполняется с помощью Visual Studio, как если бы вы установили ее вручную, но Visual Studio запустит cmake и, таким образом, проверит, что что-то изменилось, и файлы проекта должны быть восстановлены.

Ответ 2

CMake генерирует "реальные".vcproj файлы, поэтому Visual Studio будет создавать ваш проект, как любой обычный проект Visual Studio. Нет связанных файлов.

Ответ 3

С сайта CMake:

CMake используется для управления процессом компиляции программного обеспечения с использованием простого независимые от платформы и компилятора файлы конфигурации, и генерировать встроенные make файлы и рабочие пространства, которые можно использовать в компиляторе среда по вашему выбору.

Ключ в том, что он генерирует собственные make файлы и рабочие пространства из файлов конфигурации, независимых от компилятора (файлы CMakeLists.txt).

Итак, первый шаг с CMake - сгенерировать собственные файлы сборки из CMakeLists.txt, то есть Makefiles в Linux и Visual Studio projects/solution в Windows. Затем вы компилируете/создаете ссылку, как если бы исходные файлы сборки были созданы с нуля.

Когда вы редактируете CMakeLists.txt, это означает, что изменение должно быть распространено на собственную схему сборки. Это делается путем явного запуска генератора CMake снова или неявно с помощью проекта ZERO_CHECK в Visual Studio Solution.