<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.134.48.78&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.134.48.78&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/188.134.48.78"/>
		<updated>2026-05-19T16:38:20Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=CMake_Tutorial&amp;diff=30630</id>
		<title>CMake Tutorial</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=CMake_Tutorial&amp;diff=30630"/>
				<updated>2013-03-29T18:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;188.134.48.78: /* Старт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{В разработке}}&lt;br /&gt;
&lt;br /&gt;
// Тут скоро будет туториал по CMake.&lt;br /&gt;
&lt;br /&gt;
= Что это и зачем нужно =&lt;br /&gt;
CMake — кроссплатформенная автоматизированная система сборки проектов.&lt;br /&gt;
Непосредственно сборкой она не занимается, а только генерирует Makefile, который потом будет выполнен утилитой make. &lt;br /&gt;
&lt;br /&gt;
CMake может проверять наличие необходимых библиотек и подключать их, собирать проекты под разными компиляторами и операционными системами. Т.е. у вас есть куча кода и файлик, содержащий информацию для cmake, и чтобы скомпилить &lt;br /&gt;
это дело где-нибудь еще, вам нужно просто запустить там cmake, который сделает всё сам. Удобно, полезно, просто. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#a0a0a0&amp;quot;&amp;gt;Дисклеймер: Никита все еще считает, что cmake не нужен, но Никита извращенец и просто дурак.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Старт =&lt;br /&gt;
Предполагается, что найти и скачать сам cmake ты, %username%, в состоянии. //а если нет?&lt;br /&gt;
&lt;br /&gt;
Предположим, у Вас есть исходничек &amp;quot;test.cpp&amp;quot;.&lt;br /&gt;
Для начала нужно создать файлик для cmake, который обычно называют &amp;quot;CMakeLists.txt&amp;quot;, и написать туда вот это:&lt;br /&gt;
&lt;br /&gt;
 add_executable(test test.cpp)&lt;br /&gt;
&lt;br /&gt;
Теперь запускаем (из консоли) в этой папке команду &amp;quot;cmake CMakeLists.txt&amp;quot; (аргументом можно передавать не только файл, но и папку, в которой он лежит, тогда cmake найдет его сам). &lt;br /&gt;
cmake возьмет этот файлик и, основываясь на нем, создаст проект, а именно много-много файлов, папочек и т.д. &lt;br /&gt;
Нас больше всего интересует сгенерированный Makefile (проверьте, он тоже должен быть в папочке).&lt;br /&gt;
В той же папке запускаем make (аргументы такие же, как у cmake, т.е. можно сам makefile, можно папку, в которой он лежит; без аргументов make ищет makefile в текущем каталоге).&lt;br /&gt;
В консоли вылезет примерно такой текст:&lt;br /&gt;
&lt;br /&gt;
 Scanning dependencies of target test&lt;br /&gt;
 [100%] Building CXX object CMakeFiles/test.dir/test.cpp.o&lt;br /&gt;
 Linking CXX executable test&lt;br /&gt;
 [100%] Built target test&lt;br /&gt;
&lt;br /&gt;
А у Вас в папочке появится исполняемый файл &amp;quot;test&amp;quot;. Запустите, убедитесь, что это действительно то, что ожидается от компилляции файла &amp;quot;test.cpp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= We need to go deeper =&lt;br /&gt;
&lt;br /&gt;
Поразбираемся с различными командами cmake.&lt;br /&gt;
&lt;br /&gt;
=== Указание необходимой версии cmake ===&lt;br /&gt;
&lt;br /&gt;
 cmake_minimum_required(VERSION 2.6)&lt;br /&gt;
&lt;br /&gt;
Если используемая версия cmake меньше 2.6, он не захочет работать. Писать эту команду всегда - хороший стиль.&lt;br /&gt;
&lt;br /&gt;
=== Название проекта ===&lt;br /&gt;
&lt;br /&gt;
 project(visualization)&lt;br /&gt;
&lt;br /&gt;
Тут все понятно. Тоже хороший стиль.&lt;br /&gt;
&lt;br /&gt;
=== Переменные ===&lt;br /&gt;
&lt;br /&gt;
В cmake можно создавать текстовые переменные. Команда&lt;br /&gt;
&lt;br /&gt;
 set(VARIABLE The variable's value)&lt;br /&gt;
&lt;br /&gt;
запишет в переменную &amp;quot;VARIABLE&amp;quot; значение &amp;quot;The variable's value&amp;quot;.&lt;br /&gt;
Чтобы где-либо использовать значение этой переменной, нужно написать ${VARIABLES}.&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить к переменной некий текст, можно сделать так:&lt;br /&gt;
&lt;br /&gt;
 set(VARIABLE &amp;quot;${VARIABLES} new text&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Как видите, использовать значение можно и внутри кавычек.&lt;br /&gt;
Переменные активно используются различными библиотеками - для установки флагов, параметров сборки/линковки и прочих вкусностей.&lt;/div&gt;</summary>
		<author><name>188.134.48.78</name></author>	</entry>

	</feed>