Astra linux install cmake

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

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

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

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

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

tar -xzf cmake-3.5.0-rc3.tar.gz sudo make install 

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

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

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

Основная цель работы CMake – создание Makefile или проекта для конкретной среды программирования по файлу проекта CMakeLists.txt. За тип создаваемых файлов отвечает аргумент -G. Можно посмотреть поддерживаемые генераторы, выполнив

Т.е. любой проект с использованием этой системы сборки начинается с создания CMakeLists.txt, в котором описывается проект.

Читайте также:  Linux сделать файл скрытым

CMakeLists.txt

Основную документацию можно посмотреть на сайте CMake, а здесь я расскажу коротко об основных правилах написания этого файла. В этом файле описываются исходные файлы, подключаемые библиотеки, параметры компиляции, подпроекты и правила установки. В одном файле разрешается создавать несколько исполняемых файлов или библиотек и подключать несколько подпроектов. Под подпроектом я подразумеваю просто другую папку с CMakeLists.txt. В этом и состоит основная прелесть CMake – он не накладывает никаких ограничений на состав и сложность проекта. Один файл может описывать как самостоятельное приложение, так и быть корневым файлом сложного программного комплекса. Или, например, в одном файле можно описать сборку библиотеки и исполняемого файла, использующего эту библиотеку, а также тут же подключить ещё парочку подпроектов.

Итак, пример простейшего CMakeLists.txt:

Источник

Русские Блоги

CMake — это сокращение от «cross platform make», это кроссплатформенный инструмент для установки (компиляции), вы можете использовать простые предложения для описания процесса установки или компиляции на всех платформах. Cmake не создает окончательную версию программного обеспечения напрямую, но создает стандартные файлы построения, такие как файлы сборки Unix или проекты / рабочие области Windows, а затем использует их в обычных методах построения. При выводе make-файла или файла проекта он может тестировать функции C ++, поддерживаемые компилятором. Файл конфигурации CMake называется CmakeLists.txt, по одному для каждого каталога.

CMake использует файл CMakeLists.txt для описания процесса сборки и может создавать стандартные файлы сборки, такие как Unix Makefile или проекты / рабочие области Windows Visual C ++. Файл CMakeLists.txt необходимо написать вручную или его можно сгенерировать полуавтоматически, написав сценарий. CMake предоставляет более лаконичный синтаксис, чем autoconfig. Процесс использования CMake для создания файла Makefile и компиляции на платформе Linux выглядит следующим образом:

2) Выполните команду cmake PATH или ccmake PATH, чтобы сгенерировать Makefile (PATH — это каталог, в котором находится CMakeLists.txt)

3) Используйте команду make для компиляции.

Основные особенности CMake:

1) Кросс-платформенный и может генерировать собственные файлы конфигурации компиляции. На платформе Linux / Unix может быть сгенерирован файл makefile; на платформе Apple может быть создан xcode; на платформе Windows может быть сгенерирован файл проекта MSVC;

2) Способность управлять большими проектами, KDE4 — лучшее тому доказательство;

Читайте также:  No steam patch linux

3) Упростите процесс компиляции и процесс компиляции. Цепочка инструментов Cmake очень проста: cmake + make.

4) Эффективное рассмотрение Согласно официальному заявлению KDE, CMake создает kdelib для KDE4 на 40% быстрее, чем использование autotools для сборки kdelib для KDE 3.5.6, в основном потому, что Cmake не имеет libtool в цепочке инструментов.

5) Расширяемый, вы можете писать модули с определенными функциями для cmake и расширять функции cmake.

2. Загрузка и установка CMake

Прямая онлайн-установка: apt-get install cmake

Автономная установка выглядит следующим образом:

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

Примечание: если установлена ​​загруженная двоичная версия

Способ 1: После декомпрессии нужно создать мягкое соединение для cmake

# ln -s /home/app/cmake-3.17.0-Linux-x86_64/bin/* /usr/bin/

Убедитесь, что установка cmake прошла успешно: cmake -version

После распаковки установочного пакета отредактируйте vim / etc / profile или vim ~ / .bashrc, чтобы добавить

Убедитесь, что установка cmake прошла успешно: cmake -version

1) Установка исходного кода

# Wget https://cmake.org/files/v3.17/cmake-3.17.0.tar.gz // Если вы загружаете вручную, скопируйте его по этому пути

Установите gcc и другие пакеты (игнорируйте после установки) # yum install gcc-c ++

2) Посмотреть версию cmake

3. Принцип компиляции CMake

CMake в основном предназначен для записи файла CMakeLists.txt, а затем использования команды cmake для преобразования файла CMakeLists.txt в файл makefile, необходимого для make, и, наконец, использования команды make

Сделайте исходный код скомпилированным для создания исполняемой программы или общей библиотеки (so (общий объект)). Таким образом, компиляция CMake в основном состоит из двух шагов: cmake и make.

cmake указывает на каталог, в котором находится CMakeLists.txt.Например, cmake .. означает, что CMakeLists.txt находится в верхнем каталоге текущего каталога. После cmake будет сгенерировано много скомпилированных промежуточных файлов и файлов makefile, поэтому обычно рекомендуется создать новый каталог специально для компиляции, например

4. Сделайте первый пример.

Вот простейший HelloWorld

1) Новый каталог проекта:Папка HelloWorld, используемая для хранения файлов проекта

2) Запишите исходные файлы:HelloWorld.cpp, напишите следующее:

#include using namespace std; int main()

3) Напишите CMakeLists.txt:

Создайте новый файл CMakeLists.txt в каталоге того же уровня с файлом cpp и напишите следующее содержимое:

#cmake минимальные требования к версии, вы получите предупреждающее сообщение, если не присоединитесь к этой строке cmake_minimum_required(VERSION 3.17) project (HelloWorld) # Название проекта # Добавить все файлы исходного кода и файлы заголовков в текущем каталоге (.) В переменную SRC_LIST aux_source_directory(. SRC_LIST) # Создать приложение HelloWorld (HelloWorld.exe будет автоматически сгенерирован под Windows) add_executable(HelloWorld $)

4) Создайте каталог сборки( цель:Храните много скомпилированных промежуточных файлов и файлов makefile, все сгенерированные проекты конфигурации находятся в каталоге сборки, что относительно ясно )

Читайте также:  Linux добавить dns сервер через консоль

Внешний метод компиляции:Хотя cmake может компилироваться напрямую в текущем каталоге, создавать каталог сборки нет необходимости. Однако все сгенерированные промежуточные файлы и исходный код будут смешаны вместе, и make-файл, сгенерированный cmake, не сможет отслеживать все промежуточные файлы, то есть команду «make distclean» нельзя использовать для удаления всех промежуточных файлов. Поэтому мы рекомендуем создать каталог сборки для компиляции. Все промежуточные файлы будут созданы в каталоге сборки. Когда вам нужно удалить его, вы можете просто очистить каталог. Это так называемый метод внешней компиляции.

5) Скомпилировать

6) Запускаем:

5. Пример второй CMake (несколько файлов)

1) Новый каталог проекта:Папка проекта, используемая для хранения файлов проекта

2) Запишите исходные файлы:

#ifndef __FUNC__ #define __FUNC__ class CFunc < public: CFunc(); ~CFunc(); int Add(int x, int y); >; #endif 
#include "../include/Func.h" CFunc::CFunc() < >CFunc::~CFunc() < >int CFunc::Add(int x, int y)
#include "../include/Func.h" #include using namespace std; int main() < CFunc *pFunc = new CFunc(); int nRes = pFunc->Add(10, 20); printf("x + y = %d\n", nRes); return 0; >

3) Напишите CMakeLists.txt:

Создайте новый файл CMakeLists.txt в корневом каталоге и напишите следующее:

# 1.cmake verson, укажите версию cmake cmake_minimum_required(VERSION 3.2) # 2. имя проекта, укажите имя проекта, как правило, соответствует имени папки проекта project(TestAdd) # 3. путь к файлу заголовка, каталог файла заголовка include_directories(include) # 4. исходный каталог, каталог исходных файлов aux_source_directory(src DIR_SRCS) # 5. установить переменную среды, установить переменную среды, все исходные файлы, используемые для компиляции, должны быть помещены сюда, иначе компиляция пройдет, но во время выполнения будут возникать различные проблемы, такие как «ошибка поиска символа xxxxx, неопределенный символ» set(TEST_ADD $) # 6. добавить исполняемый файл, добавить исполняемый файл для компиляции add_executable($ $) # 7. добавить библиотеку ссылок, добавить библиотеку, необходимую для исполняемого файла, например, если мы используем libXLSDKVCN.so (правило именования: lib + name + .so), добавьте имя библиотеки target_link_libraries($ XLSDKVCN)

4) Создайте каталог сборки

5) Скомпилировать

6) Запускаем:

Источник

Оцените статью
Adblock
detector