Startseite > Sonstige externe Pakete > cmake

cmake: Generator für plattformübergreifende Build-Systeme

CMake ist ein Werkzeug zur Erstellung von Build-Systemen, die unabhängig von Betriebssystem und Compiler sind. Es wird hauptsächlich für C- und C++-Projekte verwendet und kann verschiedene Build-Dateien wie Makefiles, Visual Studio-Projekte und Xcode-Projekte generieren. Dies ermöglicht es Entwicklern, Projekte zu verwalten und zu kompilieren, ohne von bestimmten IDEs oder Build-Tools abhängig zu sein.

Übersicht

CMake generiert Build-Skripte, die auf der Datei CMakeLists.txt basieren, welche den Build-Prozess des Quellcodes definiert. Diese Skripte sind für das vom Benutzer ausgewählte Build-Tool (z. B. Make, Ninja) geeignet. Dies ist unerlässlich, um den Build-Prozess komplexer Projekte zu standardisieren und zu automatisieren.

Hauptmerkmale

  • Plattformübergreifende Unterstützung (Linux, Windows, macOS usw.)
  • Generierung verschiedener Build-Systeme (Makefiles, Visual Studio, Xcode usw.)
  • Einfache Verwaltung modularer Projekte
  • Unterstützung für Tests und Paketerstellung (CTest, CPack)

Wichtige Optionen

Dies sind die wichtigsten Optionen, die häufig bei der Ausführung des CMake-Befehls verwendet werden.

Grundeinstellungen

Build-System-Generatoren

Build und Installation

Informationen

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`cmake` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Dies sind verschiedene Szenarien zum Einrichten und Erstellen von Projekten mit CMake.

Grundlegende Build-Konfiguration und Makefile-Erstellung

mkdir build
cd build
cmake ..
make

Erstellt ein Makefile im Unterverzeichnis 'build' basierend auf dem Quellcode im aktuellen Verzeichnis.

Explizite Angabe von Quell- und Build-Verzeichnissen

cmake -S /path/to/my_project_source -B /path/to/my_project_build

Erstellt Build-Dateien, indem Quell- und Build-Verzeichnisse explizit angegeben werden.

Verwendung des Ninja-Generators und Release-Build

cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release

Erstellt Build-Dateien unter Verwendung des Ninja-Build-Systems und setzt den Build-Typ auf Release.

Ausführung des Builds über CMake

cmake --build build

Führt den Build über den CMake-Befehl aus, anstatt direkt das generierte Build-System (z. B. Makefile) aufzurufen.

Installation des gebauten Projekts

cmake --install build

Installiert das gebaute Projekt im Standardpfad des Systems (z. B. /usr/local).

Installation

CMake ist auf den meisten Linux-Distributionen nicht standardmäßig verfügbar und muss über einen Paketmanager installiert werden.

Debian/Ubuntu

sudo apt update
sudo apt install cmake

Installiert CMake mit dem APT-Paketmanager.

Fedora/RHEL/CentOS

sudo dnf install cmake

Installiert CMake mit dem DNF- oder YUM-Paketmanager.

Arch Linux

sudo pacman -S cmake

Installiert CMake mit dem Pacman-Paketmanager.

Tipps & Hinweise

Dies sind Tipps und Hinweise zur effektiven Nutzung von CMake.

Out-of-Source-Build

Es wird immer empfohlen, einen 'Out-of-Source'-Build zu verwenden, bei dem das Quellcode-Verzeichnis und das Build-Verzeichnis getrennt sind. Dies hält das Quellverzeichnis sauber und ermöglicht einen einfachen Wechsel zwischen verschiedenen Build-Konfigurationen.

  • Verhindert die Verschmutzung des Quellverzeichnisses
  • Einfache gleichzeitige Verwaltung verschiedener Build-Konfigurationen (Debug/Release)

CMakeLists.txt-Datei

Das Herzstück von CMake ist die Datei CMakeLists.txt, die die Build-Regeln des Projekts definiert. Das Verständnis der Syntax und Struktur dieser Datei ist wichtig.

  • Befindet sich im Stammverzeichnis des Projekts
  • Kann auch in Unterverzeichnissen vorhanden sein (eingebunden mit dem Befehl add_subdirectory)

Verwendung von GUI-Tools

Bei komplexen CMake-Projekten können Sie Tools wie `ccmake` (terminalbasiert) oder `cmake-gui` (grafisch) verwenden, um Cache-Variablen visuell zu konfigurieren und zu verwalten.

  • `ccmake`: Konfiguriert Cache-Variablen interaktiv im Terminal
  • `cmake-gui`: Bequeme Konfiguration über eine grafische Benutzeroberfläche

Gleiche Kategorie Befehle