CMake-Projektstruktur und CMakeLists.txt
Strukturieren Sie Quellbäume und schreiben Sie grundlegende CMakeLists-Dateien.
CMake-Projektstruktur und CMakeLists.txt ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum CMake?
CMake ist der De-facto-Standard für Buildsystem-Generatoren in C++. Es erzeugt aus einer einzigen Beschreibung Projektdateien für Make, Ninja, Visual Studio und Xcode.
Minimale CMakeLists.txt
Die kleinste sinnvoll nutzbare CMakeLists.txt für eine einzelne ausführbare Datei.
cmake_minimum_required(VERSION 3.20)
project(MyApp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(myapp main.cpp)Out-of-Source-Builds
Erstellen Sie Builds immer in einem separaten Verzeichnis – so bleibt der Quellbaum sauber.
# from project root
cmake -B build
cmake --build buildStandard-Projektstruktur
Eine übersichtliche Struktur:
CMakeLists.txtsrc/– Quelldateieninclude/– öffentliche Headertests/– Teststhird_party/– gebündelte Abhängigkeiten
Unterverzeichnisse hinzufügen
Beziehen Sie Unterverzeichnisse mit einer eigenen CMakeLists.txt rekursiv ein.
# top-level
add_subdirectory(src)
add_subdirectory(tests)Variablen und Properties
Setzen Sie Variablen mit set. Lesen Sie sie mit ${var} aus. Häufig verwendete Variablen sind CMAKE_BUILD_TYPE und CMAKE_CXX_FLAGS.
set(CMAKE_BUILD_TYPE Release)
set(SOURCES src/a.cpp src/b.cpp)Dateien dynamisch finden
Verwenden Sie file(GLOB ...) für schnelle Prototypen. Listen Sie in Produktionsprojekten die Quelldateien explizit auf, damit CMake erneut ausgeführt wird, wenn Dateien hinzukommen.
# Discouraged for production
file(GLOB SOURCES "src/*.cpp")
# Preferred
add_executable(myapp src/main.cpp src/util.cpp)Build-Konfigurationen
Häufig verwendete Konfigurationen sind Debug, Release, RelWithDebInfo und MinSizeRel. Setzen Sie sie mit -DCMAKE_BUILD_TYPE=Release.
cmake -B build -DCMAKE_BUILD_TYPE=ReleaseCompiler-Warnungen
Aktivieren Sie Warnungen als Target-Properties – so bleiben sie compilerübergreifend portabel.
target_compile_options(myapp PRIVATE
$<$<CXX_COMPILER_ID:GNU,Clang>:-Wall -Wextra>
$<$<CXX_COMPILER_ID:MSVC>:/W4>
)Moderner CMake-Stil
Bevorzugen Sie target-basierte Befehle (target_*) gegenüber globalen Befehlen. Dadurch werden Properties sauber auf bestimmte Targets beschränkt.
CMakePresets.json (CMake 3.19+)
Definieren Sie wiederverwendbare Konfigurationen in CMakePresets.json – gemeinsam für alle Teammitglieder.
Projekt installieren
Verwenden Sie install-Befehle, um Binärdateien, Bibliotheken und Header in Installationspfade zu kopieren.
install(TARGETS myapp DESTINATION bin)
install(DIRECTORY include/ DESTINATION include)Kurze Überprüfung
Welches Verzeichnismuster wird beim Ausführen von CMake empfohlen?
Zusammenfassung
CMake ist der Standard für C++-Buildsystem-Generatoren. Schreiben Sie eine CMakeLists.txt, erstellen Sie den Build außerhalb des Quellverzeichnisses und verwenden Sie target-basierte Befehle. Nutzen Sie Presets für gemeinsam verwendete Konfigurationen und Properties für Compiler-Flags.
Lerne C++ mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 51
- Lektionen
- 203
Häufig gestellte Fragen
Ist die Lektion „CMake-Projektstruktur und CMakeLists.txt“ kostenlos?
Ja — der vollständige Text von „CMake-Projektstruktur und CMakeLists.txt“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „CMake-Projektstruktur und CMakeLists.txt“?
Strukturieren Sie Quellbäume und schreiben Sie grundlegende CMakeLists-Dateien. Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C++ Academy zu starten?
Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „CMake-Projektstruktur und CMakeLists.txt“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?
Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- CMake-Projektstruktur und CMakeLists.txt
- Targets, Linking und Sichtbarkeit: PUBLIC, PRIVATE
- Abhängigkeiten mit vcpkg und Conan verwenden
- IDE-Dateien und plattformübergreifende Builds erzeugen