Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
build:cmake:create-project [2022/07/01 23:52] naums |
build:cmake:create-project [2022/09/22 19:58] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Ein Projekt anlegen ====== | ====== Ein Projekt anlegen ====== | ||
- | |||
- | ===== Ein erste Projekt ===== | ||
Um CMake zu ermöglichen unser Projekt zu bauen müssen wir beschreiben wie unser Projekt übersetzt werden muss. Dazu erstellen wir eine Datei mit dem Namen ''CMakeLists.txt'' und beschreiben in einer für CMake verständlichen Skriptsprache, alle benötigten Aspekte unseres Programms. Für ein einfache Hello-World Programm (einzige Quelldatei ist main.c) kann diese Datei zum Beispiel so ausschauen: | Um CMake zu ermöglichen unser Projekt zu bauen müssen wir beschreiben wie unser Projekt übersetzt werden muss. Dazu erstellen wir eine Datei mit dem Namen ''CMakeLists.txt'' und beschreiben in einer für CMake verständlichen Skriptsprache, alle benötigten Aspekte unseres Programms. Für ein einfache Hello-World Programm (einzige Quelldatei ist main.c) kann diese Datei zum Beispiel so ausschauen: | ||
- | <code> | + | <code cmake> |
cmake_minimum_required(VERSION 3.10) | cmake_minimum_required(VERSION 3.10) | ||
Zeile 13: | Zeile 11: | ||
</code> | </code> | ||
- | ==== Das Projekt bauen ==== | + | ===== Das Projekt bauen ===== |
Der Vorgang das Projekt nun zu übersetzen besteht aus zwei Schritten: | Der Vorgang das Projekt nun zu übersetzen besteht aus zwei Schritten: | ||
Zeile 51: | Zeile 49: | ||
Nun führen wir das Makefile normal aus, womit das Projekt übersetzt und gelinkt wird, und wir erhalten eine ''hello_world'' Executable. | Nun führen wir das Makefile normal aus, womit das Projekt übersetzt und gelinkt wird, und wir erhalten eine ''hello_world'' Executable. | ||
- | ==== Die CMakeLists verstehen ==== | + | ===== Die CMakeLists verstehen ===== |
Die obige ''CMakeLists.txt'' beinhaltet drei Kommandos: | Die obige ''CMakeLists.txt'' beinhaltet drei Kommandos: | ||
- | <code> | + | <code cmake> |
cmake_minimum_required(VERSION 3.10) | cmake_minimum_required(VERSION 3.10) | ||
</code> | </code> | ||
Zeile 61: | Zeile 59: | ||
Dies gibt die minimale Version von CMake an, mit der dieses CMakefile benutzt werden kann. Das wird vor allem dann interessant, wenn Features aktuellerer CMake-Versionen gebraucht werden. Es bietet sich für persönliche Projekte an, einfach die Version des installierten CMakes zu verwenden, für Projekte mit anderen Entwickler\*innen, sollte sich auf die minimal vorhandene Version über die vorhandenen Linux-Systeme hinweg geeinigt werden. Damit sind aber auch einige der aktuelleren Features ausgeschlossen, weil die mit einem älteren CMake nicht funktionieren. | Dies gibt die minimale Version von CMake an, mit der dieses CMakefile benutzt werden kann. Das wird vor allem dann interessant, wenn Features aktuellerer CMake-Versionen gebraucht werden. Es bietet sich für persönliche Projekte an, einfach die Version des installierten CMakes zu verwenden, für Projekte mit anderen Entwickler\*innen, sollte sich auf die minimal vorhandene Version über die vorhandenen Linux-Systeme hinweg geeinigt werden. Damit sind aber auch einige der aktuelleren Features ausgeschlossen, weil die mit einem älteren CMake nicht funktionieren. | ||
- | <code> | + | <code cmake> |
project(HelloWorld) | project(HelloWorld) | ||
</code> | </code> | ||
Zeile 67: | Zeile 65: | ||
Diese Zeile gibt dem Projekt einen beliebigen Projektnamen. | Diese Zeile gibt dem Projekt einen beliebigen Projektnamen. | ||
- | <code> | + | <code cmake> |
add_executable(hello_world main.c) | add_executable(hello_world main.c) | ||
</code> | </code> |