Меню Рубрики

Установка cmake на windows

Знакомство с CMake. Часть 1. Установка, CMakeLists.txt, сборка.

Введение.

Многие, кто начинал создавать собственные программы, пользовался какой-либо системой сборки. В общем, система сборки – это набор инструментов, облегчающий работу с компилятором. Это включает в себя компиляцию, линковку, установку, а также сбор исходных файлов для передачи их компилятору и слежение за зависимостями. Также современные системы сборки облегчают работу с библиотеками, позволяют создавать переносимые проекты и выполняют ещё массу других вкусностей. Эта статья посвящена популярной системе сборки CMake и расскажет, как правильно её установить и настроить, а также будет рассмотрен простой пример её использования. Она рассчитана на тех, что хоть немного знаком с понятиями make, Makefile, компиляция, линковка.

Установка в Linux.

Для популярных дистрибутивов Linux типа Debian, Gentoo, Fedora и т.д. CMake давно лежит в официальных репозиториях. Нам нужно всего лишь установить пакет cmake с помощью менеджера пакетов. Как правило, он устанавливается в системные директории, и необходимости править переменные окружения нету. Можете проверить её работоспособность, выполнив

Если же в репозитории нет такого пакета, то можно его собрать вручную. Скачиваем Unix/Linux Source, например, cmake-3.5.0-rc3.tar.gz, распаковываем и собираем:

Если нет необходимости устанавливать в системную /usr директорию, можно в аргументе —prefix прописать нужный корень установки. По умолчанию, без явного указания —prefix, установка будет произведена в /usr/local. -j используется для ускорения сборки, например, на 4-х ядерном процессоре можно указать -j4, и сборка будет вестись параллельно в 4 потока.

Установка в Windows.

Для Windows на сайте CMake лежит установочный файл msi. Рекомендую при установке отметить галочку добавления пути в переменные окружения PATH для всех пользователей. Тогда, после перелогинивания, CMake будет доступен из любого места. Проверить можно, открыв cmd и выполнив тот же

Источник

cmake Начало работы с cmake

замечания

CMake — это инструмент для определения и управления сборками кода, прежде всего для C ++.

CMake — это кросс-платформенный инструмент; идея состоит в том, чтобы иметь единое определение того, как строится проект, — который переводится в конкретные определения построения для любой поддерживаемой платформы.

Это достигается путем сопряжения с различными платформами, специфичными для платформы; CMake — это промежуточный шаг, который генерирует ввод данных для разных конкретных платформ. В Linux CMake генерирует Makefiles; в Windows он может создавать проекты Visual Studio и т. д.

Поведение сборки определяется в файлах CMakeLists.txt — по одному в каждом каталоге исходного кода. Файл CMakeLists каждого каталога определяет, что должна делать система сборки в этом конкретном каталоге. Он также определяет, какие подкаталоги должны обрабатывать CMake.

Типичные действия включают:

  • Создайте библиотеку или исполняемый файл из некоторых исходных файлов в этом каталоге.
  • Добавьте путь к пути include-path, который используется во время сборки.
  • Определите переменные, которые будет использовать buildsystem в этом каталоге, и в его подкаталогах.
  • Создайте файл на основе конкретной конфигурации сборки.
  • Найдите библиотеку, которая находится где-то в исходном дереве.

Окончательные файлы CMakeLists могут быть очень четкими и понятными, поскольку каждый из них настолько ограничен по объему. Каждый из них обрабатывает столько же сборки, сколько присутствует в текущем каталоге.

Для официальных ресурсов на CMake см. Документацию и учебник CMake.

Версии

Версия Дата выхода
3,9 2017-07-18
3,8 2017-04-10
3,7 2016-11-11
3,6 2016-07-07
3,5 2016-03-08
3,4 2015-11-12
3,3 2015-07-23
3,2 2015-03-10
3,1 2014-12-17
3.0 2014-06-10
2.8.12.1 2013-11-08
2.8.12 2013-10-11
2.8.11 2013-05-16
2.8.10.2 2012-11-27
2.8.10.1 2012-11-07
2.8.10 2012-10-31
2.8.9 2012-08-09
2.8.8 2012-04-18
2.8.7 2011-12-30
2.8.6 2011-12-30
2.8.5 2011-07-08
2.8.4 2011-02-16
2.8.3 2010-11-03
2.8.2 2010-06-28
2.8.1 2010-03-17
2,8 2009-11-13
2,6 2008-05-05

«Привет мир» в качестве библиотеки

В этом примере показано, как развернуть программу «Hello World» в качестве библиотеки и как связать ее с другими объектами.

Скажем, у нас есть тот же набор исходных / заголовочных файлов, что и в примере http://www.riptutorial.com/cmake/example/22391/-hello-world—with-multiple-source-files . Вместо создания из нескольких исходных файлов мы можем сначала развернуть foo.cpp как библиотеку с помощью add_library() а затем связать ее с основной программой с помощью target_link_libraries() .

Мы модифицируем CMakeLists.txt для

и после тех же шагов мы получим тот же результат.

«Hello World» с несколькими исходными файлами

Сначала мы можем указать каталоги файлов заголовков include_directories() , тогда нам нужно указать соответствующие исходные файлы целевого исполняемого файла с помощью add_executable() и убедиться, что в исходных файлах есть только одна функция main() .

Ниже приведен простой пример: все файлы предполагаются помещенными в каталог PROJECT_SOURCE_DIR .

main.cpp

foo.h

foo.cpp

CMakeLists.txt

Мы можем следовать той же процедуре в приведенном выше примере, чтобы построить наш проект. Затем выполнение app распечатает

Установка CMake

Перейдите на страницу загрузки CMake и получите двоичный файл для вашей операционной системы, например Windows, Linux или Mac OS X. В Windows дважды щелкните двоичный файл для установки. В Linux запускается двоичный файл с терминала.

В Linux вы также можете установить пакеты из диспетчера пакетов дистрибутива. На Ubuntu 16.04 вы можете установить командную строку и графическое приложение с помощью:

В FreeBSD вы можете установить командную строку и графическое приложение на основе Qt с помощью:

В Mac OSX, если вы используете один из менеджеров пакетов, доступных для установки вашего программного обеспечения, наиболее заметным из которых является MacPorts ( MacPorts ) и Homebrew ( Homebrew ), вы также можете установить CMake через один из них. Например, в случае MacPorts, введите следующие

установит CMake, в то время как в случае использования ящика Homebrew, который вы наберете

После того, как вы установили CMake, вы можете легко проверить, выполнив следующие

Вы должны увидеть что-то похожее на следующее

Простой проект «Hello World»

Учитывая исходный файл C ++ main.cpp определяющий функцию main() , сопровождающий файл CMakeLists.txt (со следующим содержимым) будет инструктировать CMake для генерации соответствующих инструкций сборки для текущей системы и компилятора C ++ по умолчанию.

CMakeLists.txt

cmake_minimum_required(VERSION 2.4) устанавливает минимальную версию CMake, необходимую для оценки текущего скрипта.

project(hello_world) запускает новый проект CMake. Это вызовет много внутренней логики CMake, особенно при обнаружении компилятора C и C ++ по умолчанию.

С помощью add_executable(app main.cpp) создается целевое app для сборки, которое будет вызывать сконфигурированный компилятор с некоторыми стандартными флагами для текущего параметра для компиляции исполняемого app из данного исходного файла main.cpp .

Командная строка (In-Source-Build, не рекомендуется)

cmake . обнаруживает компилятор, оценивает CMakeLists.txt в данном . и генерирует среду сборки в текущем рабочем каталоге.

cmake —build . команда является абстракцией для необходимого вызова build / make.

Командная строка (рекомендуется использовать Out-of-Source)

Чтобы ваш исходный код был чистым от каких-либо артефактов сборки, вы должны делать сборки «вне источника».

Или CMake также может абстрагировать основные команды оболочки платформы из примера выше:

Переключение между типами сборки, например отладка и выпуск

CMake знает несколько типов сборки, которые обычно влияют на параметры компилятора и компоновщика по умолчанию (такие как создаваемая отладочная информация) или альтернативные пути кода.

По умолчанию CMake может обрабатывать следующие типы сборки:

  • Отладка : обычно классическая сборка отладки, включая отладочную информацию, отсутствие оптимизации и т. Д.
  • Выпуск : типичная версия сборки без отладочной информации и полной оптимизации.
  • RelWithDebInfo:: То же, что и Release , но с информацией об отладке.
  • MinSizeRel : специальная версия выпуска, оптимизированная для размера.

Как обрабатываются конфигурации, зависит от используемого генератора.

Некоторые генераторы (например, Visual Studio) поддерживают несколько конфигураций. CMake будет генерировать все конфигурации сразу, и вы можете выбрать из IDE или использовать —config CONFIG (с cmake —build ), какую конфигурацию вы хотите построить. Для этих генераторов CMake будет стараться изо всех сил генерировать структуру каталогов сборки, чтобы файлы из разных конфигураций не наступали друг на друга.

Генераторы, которые поддерживают только одну конфигурацию (например, Unix Make-файлы), работают по-разному. Здесь CMAKE_BUILD_TYPE активная конфигурация определяется значением переменной CMake CMAKE_BUILD_TYPE .

Например, чтобы выбрать другой тип сборки, можно выполнить следующие команды командной строки:

Сценарий CMake должен избегать установки самого CMAKE_BUILD_TYPE , так как обычно это отвечает за ответственность пользователей.

Для генераторов с одним коннектором для переключения конфигурации требуется перезапуск CMake. Последующая сборка, скорее всего, перезапишет объектные файлы, созданные более ранней конфигурацией.

Источник

Установка cmake на windows

Краткая инструкция по установке всех нужных для курса библиотек для Visual Studio

Содержание

На Windows рекомендуется использовать

  • Visual Studio Community Edition последней версии для разработки
  • vcpkg для установки пакетов
  • CMake для сборки некоторых библиотек

Без vcpkg каждую библиотеку придётся ставить по отдельности. Пакетный менеджер vcpkg автоматизирует скачивание и сборку библиотек на машине разработчика.

Установка CMake

Для сборки примеров потребуется CMake. Свои работы можно делать без CMake.

  • Скачайте Cmake с официального сайта
  • При установке не забудьте поменять опцию, чтобы путь к CMake был добавлен в переменную PATH

  • Переменные окружения, такие как PATH, передаются приложению при старте. Если вы поменяли переменную PATH, изменения вступят в силу после перезапуска программ.

Установка и использование vcpkg

Пакетный менеджер vcpkg распространяется в исходниках и собирается на машине разработчика. Для сборки потребуется установленная Visual Studio с инструментами C++ разработчика.

Порядок установки описан в консольных командах:

Из команды выше легко понять, что имена пакетов перечисляются по порядку, а в качестве суффикса используется так называемый “триплет”: имя_пакета:триплет .

  • Имя пакета задаёт одно из множества имён доступных библиотек.
  • Триплет задаёт архитектуру и режим сборки

Для данного курса рекомендуются триплеты x86-windows-static для сборки 32-битной версии программы и x64-windows-static для сборки 64-битной версии. Суффикс static означает, что библиотеки будут собираться статически и вам не потребуется распространять DLL.

Вместо явного указания триплета для каждой библиотеки можно разом указать триплет для всех:

Последняя, но крайне важная деталь: включите автоматическую интеграцию пакетов vcpkg во все проекты Visual C++:

Установка пакетов для курса

Мы используем следующие библиотеки:

  • sdl2, sdl2-image, sdl2-mixer, sdl2-ttf в целях абстрагирования от операционной системы для создания окон, растеризации текстовых надписей, загрузки изображений с диска, загрузки и проигрывания звуковых файлов
  • glbinding для прозрачного подключения нужной версии API OpenGL без необходимости вручную работать с механизмом расширений OpenGL
  • assimp3 для загрузки 3D моделей из множества форматов файлов
  • anax для построения архитектуры программы на принципах Component-Entity-System
  • bullet3 для расчёта столкновений в 3D пространстве
  • glm для работы с линейной алгеброй в рамках задач 3D графики
  • nlohmann-json для загрузки JSON
  • tinyxml2 для загрузки XML

Команда для установки 32-битных версий библиотек из исходников может выполняться долго, т.к. сборка занимает длительное время:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Установка chrome windows 7
  • Установка centos 7 рядом с windows
  • Установка centos 7 вместе с windows
  • Установка capicom для windows 10
  • Установка caffe на windows