CMake für C++: vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in CMake: Was es ist und warum man es braucht

\n\n

CMake (Cross-Platform Make) ist ein leistungsstarkes, plattformübergreifendes Open-Source-System zur Automatisierung von Software-Builds. Im Gegensatz zu traditionellen Makefiles erstellt CMake ein Projekt nicht direkt, sondern generiert Build-Dateien für native Werkzeuge (Make, Ninja, Visual Studio, Xcode) auf der Grundlage einfacher Konfigurationsdateien namens CMakeLists.txt.

\n\n

Warum CMake?

\n
    \n
  • Plattformunabhängigkeit: Derselbe Code kann ohne Konfigurationsänderungen unter Windows, Linux und macOS gebaut werden.
  • \n
  • Abhängigkeitsverwaltung: Integrierte Unterstützung zum Suchen und Einbinden externer Bibliotheken (Boost, OpenCV, Qt usw.).
  • \n
  • Flexibilität: Unterstützung verschiedener Projektgeneratoren (Visual Studio, Xcode, Ninja, Unix Makefiles).
  • \n
  • Modularität: Möglichkeit zur Erstellung von Bibliotheken (statisch und dynamisch), ausführbaren Dateien und Tests.
  • \n
  • IDE-Integration: Moderne IDEs (CLion, VS Code, Qt Creator) haben eine integrierte CMake-Unterstützung.
  • \n
\n\n

CMake ist zum De-facto-Standard für C++-Projekte geworden. Es wird von Giganten wie Google (TensorFlow, Chrome), Microsoft (VS Code), KDE, LLVM/Clang und vielen anderen verwendet.

\n\n

Installation von CMake

\n\n

Im Gegensatz zu Python-Bibliotheken wird CMake nicht über pip installiert. Es ist eine eigenständige Anwendung. Betrachten wir die Installation für die wichtigsten Betriebssysteme:

\n\n

Windows

\n
    \n
  1. Laden Sie das Installationsprogramm von der offiziellen Website herunter (wählen Sie die Version für Windows – .msi oder .zip).
  2. \n
  3. Starten Sie die Installation. Aktivieren Sie unbedingt die Option "Add CMake to the system PATH for all users".
  4. \n
  5. Überprüfen Sie nach der Installation: cmake --version in der Eingabeaufforderung.
  6. \n
\n\n

Linux (Ubuntu/Debian)

\n
sudo apt update\nsudo apt install cmake\ncmake --version
\n\n

macOS (Homebrew)

\n
brew install cmake\ncmake --version
\n\n

Installationsprüfung

\n

Führen Sie nach der Installation im Terminal aus:

\n
cmake --version\n# Die Ausgabe sollte ähnlich sein wie:\n# cmake version 3.27.0
\n\n

Schnellstart: Erstes Projekt mit CMake

\n\n

Erstellen wir ein einfaches "Hello World"-Projekt mit CMake.

\n\n

Projektstruktur

\n
my_project/\n├── CMakeLists.txt\n└── main.cpp
\n\n

Datei main.cpp

\n
#include <iostream>\n\nint main() {\n    std::cout << "Hello, CMake!" << std::endl;\n    return 0;\n}
\n\n

Datei CMakeLists.txt

\n
cmake_minimum_required(VERSION 3.10)\nproject(HelloWorld VERSION 1.0 LANGUAGES CXX)\n\nadd_executable(hello main.cpp)
\n\n

Projekt bauen

\n
mkdir build\ncd build\ncmake ..\ncmake --build .\n./hello
\n\n

Erklärung:

\n
    \n
  • cmake_minimum_required — legt die minimale CMake-Version fest.
  • \n
  • project — definiert den Projektnamen und die Sprache (CXX für C++).
  • \n
  • add_executable — erstellt eine ausführbare Datei aus den Quelldateien.
  • \n
\n\n

Grundlegende CMake-Methoden und -Funktionen

\n\n

1. cmake_minimum_required()

\n

Beschreibung: Legt die minimale CMake-Version fest, die zum Bauen des Projekts erforderlich ist. Wenn die CMake-Version niedriger als angegeben ist, wird ein Fehler ausgegeben.

\n

Parameter:

\n
    \n
  • VERSION — Version im Format major.minor[.patch[.tweak]]
  • \n
  • FATAL_ERROR — optional, löst einen schwerwiegenden Fehler bei Versionskonflikt aus
  • \n
\n

Beispiel:

\n
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
\n\n

2. project()

\n

Beschreibung: Definiert den Projektnamen und seine Parameter. Muss

Empfehlungen