We may earn an affiliate commission when you visit our partners.
Course image
Jan Schaffranek

Kursbeschreibung:

Der Kurs ist genau das Richtige für dich, wenn du lernen möchtest, wie du CMake und andere Werkzeuge für professionelle C/C++ Projekte einsetzt.

Melde dich für diesen Kurs an und erweitere dein Wissen in C/C++ Projektmanagement, um deine Karrierechancen in der Softwareentwicklung zu erhöhen und effektiver in deiner Arbeit zu werden.

Read more

Kursbeschreibung:

Der Kurs ist genau das Richtige für dich, wenn du lernen möchtest, wie du CMake und andere Werkzeuge für professionelle C/C++ Projekte einsetzt.

Melde dich für diesen Kurs an und erweitere dein Wissen in C/C++ Projektmanagement, um deine Karrierechancen in der Softwareentwicklung zu erhöhen und effektiver in deiner Arbeit zu werden.

In diesem Kurs zeige ich dir zunächst, wie du die benötigte Software für Windows, Linux und Mac installierst. Anschließend erhältst du eine fundierte Einführung in Makefile und CMake. Die Beherrschung von CMake ermöglicht es dir, plattformübergreifende Projekte effizient zu verwalten und zu erstellen, wodurch deine Produktivität und deine Arbeitsmarktfähigkeiten gesteigert werden.

Der Kurs behandelt auch die Erstellung von Doxygen-Dokumentationen, die Verwendung des Conan Package Managers, Unit Testing mit Catch2, Logging, Benchmarking und vieles mehr. Des Weiteren lernst du, wie du Code Coverage und CI Testing durchführst und verschiedene Tooling-Optionen wie LTO, Clang-Tidy, Clang-Format, pre-commit und cmake-format nutzen kannst.

Dieser Kurs besteht aus folgenden Themengebieten:

  • Installation der Software für Windows, Linux und Mac

  • Makefile Tutorial  

  • CMake Tutorial (Libraries, Targets, Install etc.)

  • Doxygen Dokumentation  

  • Conan Package Manager  

  • Unit Testing mit Catch2  

  • Logging und Benchmarking  

  • Code Coverage und CI Testing  

  • Tooling: LTO, Clang-Tidy, Clang-Format, pre-commit, cmake-format

  • Debugging und Installation deiner Projekte

Werde noch heute ein Profi, in der Technologie von Morgen. Wir sehen uns im Kurs.

Enroll now

What's inside

Learning objectives

  • Der umgang mit make (command line)
  • Der umgang mit cmake (command line und gui einbindung)
  • Das erstellen von modernen c++ projekten
  • Das einbinden von externen projekten (git und conan)
  • Erstellung einer html dokumentation vom code
  • Unit testing mit catch2
  • Code coverage der unit tests
  • Continuous integration mit github actions
  • Einbindung von clang-format und clang-tidy

Syllabus

Einleitung
Einleitung in den Kurs
Windows: Software Installation - Part 1
Windows: Software Installation - Part 2
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Vermittelt den Umgang mit CMake, was die plattformübergreifende Entwicklung vereinfacht und die Kompatibilität von Projekten mit verschiedenen Betriebssystemen gewährleistet
Behandelt Unit-Tests mit Catch2, was für die Qualitätssicherung unerlässlich ist und hilft, Fehler frühzeitig im Entwicklungsprozess zu erkennen
Behandelt die Erstellung von Doxygen-Dokumentationen, was die Lesbarkeit und Wartbarkeit des Codes verbessert und die Zusammenarbeit im Team erleichtert
Nutzt Clang-Tidy und Clang-Format, was zur Verbesserung der Codequalität beiträgt und die Einhaltung von Coding-Standards im Team fördert
Verwendet den Conan Package Manager, was die Einbindung externer Bibliotheken vereinfacht und die Abhängigkeitsverwaltung in C/C++ Projekten verbessert
Bietet eine Einführung in Makefiles, aber der Schwerpunkt liegt auf CMake, was darauf hindeutet, dass Makefiles eher als Hintergrundwissen behandelt werden

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Cmake, unit tests und tooling für c++ projekte

Laut den Lernenden bietet dieser Kurs eine solide und praxisnahe Einführung in entscheidende Aspekte des modernen C/C++-Projektmanagements. Besonders hervorgehoben werden die detaillierten Abschnitte zu CMake, Unit Tests mit Catch2 und der Einbindung verschiedener Tooling-Optionen wie Clang-Tidy und Clang-Format. Viele Studierende schätzen die klaren Erklärungen und die Schritt-für-Schritt-Anleitungen, die es ihnen ermöglichen, das Gelernte direkt auf eigene Projekte anzuwenden. Die Installation auf verschiedenen Betriebssystemen wird oft als hilfreich empfunden. Einige Kommentatoren erwähnen jedoch, dass bestimmte Abschnitte schnell fortgeschritten werden oder dass Vorkenntnisse in C++ von Vorteil sind. Insgesamt wird der Kurs als sehr wertvoll für die professionelle Weiterentwicklung im C/C++-Umfeld angesehen.
Hilfreiche Anleitungen für Windows, Linux und Mac.
"Die Installationsanleitungen für Windows, Linux und Mac am Anfang sind sehr hilfreich."
"Gut, dass die spezifischen Schritte für die verschiedenen Betriebssysteme gezeigt werden."
"Man wird gut durch den Setup-Prozess auf der eigenen Plattform geführt."
Gelerntes kann sofort in Projekten genutzt werden.
"Ich konnte das Gelernte direkt in meinem aktuellen Projekt anwenden und die Build-Systeme verbessern."
"Die Beispiele sind praxisnah und zeigen, wie man die Tools effektiv nutzt."
"Der Kurs vermittelt Fähigkeiten, die im Berufsalltag als C++-Entwickler unerlässlich sind."
"Ein sehr praktischer Kurs, der sofortige Ergebnisse liefert."
Der Dozent erklärt komplexe Themen gut.
"Der Dozent erklärt die Dinge sehr anschaulich und geht auf Details ein, die oft übersehen werden."
"Mir gefällt die didaktische Aufbereitung. Man kann den Lektionen gut folgen."
"Die Erklärungen sind auf den Punkt gebracht und nicht unnötig in die Länge gezogen."
"Sehr gut erklärt, auch wenn manche Themen trocken sind, bleibt es interessant."
Nützliche Einblicke in Testing, CI und Code-Qualitätstools.
"Die Integration von Catch2 für Unit Tests und GitHub Actions für CI war super nützlich für meine Arbeit."
"Die Abschnitte zu Clang-Tidy und Clang-Format haben mir gezeigt, wie ich meinen Code professioneller gestalte."
"Ein großer Pluspunkt ist die Abdeckung von Conan und vcpkg als Paketmanager."
"Ich finde es toll, dass so viele verschiedene Tools und ihre Integration gezeigt werden."
Ausführliche Behandlung des zentralen Build-Tools.
"Das Kapitel zu CMake ist sehr detailliert und erklärt die wichtigsten Konzepte und Befehle."
"Ich habe lange nach einem Kurs gesucht, der CMake so gründlich behandelt. Endlich verstanden!"
"Der Kurs hat mir geholfen, CMake wirklich zu beherrschen und komplexe Projekte zu strukturieren."
"Die Einführung in CMake war klar und leicht verständlich, auch wenn ich vorher kaum Erfahrung hatte."
Manchmal schnell; Grundkenntnisse sind ratsam.
"Manchmal geht es recht zügig voran, man muss konzentriert bleiben."
"Es ist von Vorteil, wenn man schon grundlegende C++-Kenntnisse hat, um den Codebeispielen gut folgen zu können."
"Man sollte sich Zeit nehmen, um die Konzepte wirklich zu verinnerlichen, da die Informationsdichte hoch ist."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in C/C++ Projekte: Make, CMake, Unit Tests und Tooling [2024] with these activities:
C++ Grundlagen wiederholen
Frischen Sie Ihre C++-Kenntnisse auf, um die Konzepte in diesem Kurs besser zu verstehen. Dies hilft Ihnen, die fortgeschrittenen Themen wie CMake und Unit Testing effektiver zu erfassen.
Browse courses on C++
Show steps
  • Überprüfen Sie die Grundlagen der C++-Syntax.
  • Üben Sie mit einfachen C++-Programmen.
  • Wiederholen Sie Konzepte wie Klassen, Vererbung und Polymorphismus.
C++-Programmierung: Das umfassende Handbuch
Lesen Sie dieses Buch, um Ihr Verständnis von C++ zu vertiefen und eine solide Grundlage für die Projektarbeit zu schaffen. Es ergänzt den Kursinhalt und bietet zusätzliche Einblicke.
Show steps
  • Lesen Sie die relevanten Kapitel über C++-Grundlagen und fortgeschrittene Konzepte.
  • Arbeiten Sie die Beispiele im Buch durch.
  • Nutzen Sie das Buch als Nachschlagewerk während des Kurses.
CMake Übungsaufgaben
Üben Sie die Erstellung von CMake-Skripten für verschiedene C++-Projekte, um Ihre Fähigkeiten im Projektmanagement zu verbessern. Dies hilft Ihnen, die Konzepte aus dem Kurs zu festigen.
Browse courses on CMake
Show steps
  • Erstellen Sie CMake-Skripte für einfache Projekte.
  • Integrieren Sie externe Bibliotheken in Ihre Projekte.
  • Experimentieren Sie mit verschiedenen CMake-Befehlen und -Optionen.
Three other activities
Expand to see all activities and additional details
Show all six activities
Blog-Artikel über Unit Testing mit Catch2 schreiben
Schreiben Sie einen Blog-Artikel, um Ihr Wissen über Unit Testing mit Catch2 zu demonstrieren und zu festigen. Dies hilft Ihnen, die Konzepte zu verinnerlichen und anderen zu erklären.
Browse courses on Unit Testing
Show steps
  • Recherchieren Sie über Unit Testing und Catch2.
  • Erstellen Sie ein Beispielprojekt mit Unit Tests.
  • Schreiben Sie einen Artikel, der die Grundlagen und fortgeschrittenen Techniken erklärt.
Open-Source-Projekt beitragen
Tragen Sie zu einem Open-Source-Projekt bei, das CMake verwendet, um praktische Erfahrungen zu sammeln und Ihr Wissen zu erweitern. Dies hilft Ihnen, die im Kurs gelernten Fähigkeiten in realen Projekten anzuwenden.
Browse courses on Open Source
Show steps
  • Finden Sie ein Open-Source-Projekt, das CMake verwendet.
  • Verstehen Sie die Projektstruktur und den Build-Prozess.
  • Beheben Sie Fehler oder fügen Sie neue Funktionen hinzu.
  • Reichen Sie Ihre Änderungen ein.
CI/CD-Pipeline für ein C++-Projekt erstellen
Erstellen Sie eine CI/CD-Pipeline mit GitHub Actions für ein C++-Projekt, um die Automatisierung von Tests und Builds zu erlernen. Dies hilft Ihnen, die im Kurs behandelten Konzepte in der Praxis anzuwenden.
Browse courses on CI/CD
Show steps
  • Richten Sie ein GitHub-Repository für Ihr Projekt ein.
  • Erstellen Sie eine GitHub Actions-Workflow-Datei.
  • Konfigurieren Sie die Pipeline, um Tests auszuführen und das Projekt zu bauen.
  • Testen Sie die Pipeline und beheben Sie Fehler.

Career center

Learners who complete C/C++ Projekte: Make, CMake, Unit Tests und Tooling [2024] will develop knowledge and skills that may be useful to these careers:
Softwareentwickler
Ein Softwareentwickler erstellt und wartet Softwareanwendungen, was oft die Arbeit mit C und C++ beinhaltet. Dieser Kurs vermittelt dir das Management und die Erstellung von C/C++ Projekten mit CMake und macht dich somit zu einem versierten Softwareentwickler. Die im Kurs behandelten Themen, wie Unit Testing mit Catch2, Code Coverage, CI Testing und Tooling mit Clang-Tidy und Clang-Format, sind essenziell für die Erstellung robuster und wartbarer Software. Dieser Kurs hilft beim Aufbau von professionellen Fähigkeiten, die direkt in der täglichen Arbeit eines Softwareentwicklers eingesetzt werden können.
Embedded Software Ingenieur
Ein Embedded Software Ingenieur entwickelt Software für eingebettete Systeme, die häufig in C und C++ programmiert werden. Dieser Kurs hilft angehenden Embedded Software Ingenieuren, ihre Fähigkeiten in der Projektverwaltung und im Umgang mit Entwicklungswerkzeugen für C/C++ zu perfektionieren. Insbesondere die Kenntnisse über CMake, das Einbinden von Bibliotheken mit Conan und die Anwendung von Unit Tests mit Catch2 sind von großer Bedeutung für die Entwicklung zuverlässiger eingebetteter Systeme. Weiterhin bietet der Kurs die Grundlagen für CI Testing, debugging und crosscompilation, was diesen Kurs besonders wertvoll macht.
Build Ingenieur
Ein Build Ingenieur ist auf die Erstellung und Wartung von Build-Systemen spezialisiert. Dieser Kurs ist eine ideale Grundlage für Build Ingenieure, da er sich intensiv mit dem Build-System CMake sowie Build-Tools wie Make auseinandersetzt. Der Kurs behandelt auch wichtige Aspekte wie Continuous Integration mit Github Actions und das Tooling mit Clang-Tidy und Clang-Format. Diese Fähigkeiten sind zentral für den Aufbau und die Wartung moderner Build Infrastrukturen. Ein Build Ingenieur sollte diesen Kurs daher in Betracht ziehen.
Spieleentwickler
Spieleentwickler verwenden oft C++ für die Performance-kritischen Teile von Spielen. Der Kurs bietet essentielles Wissen wie CMake und Unit Testing, welches dabei hilft komplexe Spieleprojekte zu organisieren und zu testen. Das Einbinden von externen Bibliotheken mit Conan und Git und die Erstellung von Dokumentationen mit Doxygen sind auch wichtige Kenntnisse für einen Spieleentwickler. Der Kurs ist damit eine passende Grundlage für angehende Spieleentwickler, die ihre Fähigkeiten in C++ verbessern möchten.
Tools Entwickler
Ein Tools Entwickler erstellt Software, die von anderen Entwicklern verwendet wird, um ihre Arbeit zu erleichtern. Der Kurs bietet Tools Entwicklern durch die Behandlung von CMake, LTO, Clang-Tidy, Clang-Format und pre-commit wichtiges Wissen, um effiziente und qualitativ hochwertige Tools zu schreiben. Die Kenntnisse über Unit Testing und CI Testing mit Github Actions helfen dabei, die erstellten Tools zu test und zu sichern. Dieser Kurs gibt Tools Entwicklern eine solide Grundlage im Umgang mit Entwicklungstools.
Systemprogrammierer
Systemprogrammierer arbeiten an der Entwicklung von Betriebssystemen, Treibern und anderen Low-Level-Softwarekomponenten. Die Beherrschung von C/C++ ist hier unerlässlich, und dieser Kurs bietet durch CMake, Unit Testing und Continuous Integration die Fähigkeiten professionelle Systemsoftware zu verwalten. Die Kenntnisse über das Tooling (LTO, Clang-Tidy, Clang-Format) sind für Systemprogrammierer von unschätzbarem Wert. Dieser Kurs ist somit eine ideale Ergänzung für Systemprogrammierer.
Softwaretestingenieur
Softwaretestingenieure sind verantwortlich für die Qualitätssicherung von Softwareprodukten. Der Kurs behandelt wichtige Aspekte wie Unit Testing mit Catch2, Code Coverage, und CI Testing, was Softwaretestingenieuren entscheidende Kenntnisse vermittelt, die in ihrem Arbeitsalltag sehr nützlich sein werden. Auch das Tooling mit Clang-Tidy und Clang-Format hilft Softwaretestingenieuren, den Qualitätsstandard des Codes zu erhöhen. Dieser Kurs kann ein gutes Fundament für eine Karriere als Softwaretestingenieur bilden.
DevOps Ingenieur
Ein DevOps Ingenieur konzentriert sich auf die Automatisierung und Optimierung von Softwareentwicklungsprozessen. Dieser Kurs kann sehr nützlich für zukünftige DevOps Ingenieure sein, da er relevante Themen wie Continuous Integration mit Github Actions und Tooling (LTO, Clang-Tidy, Clang-Format, pre-commit) behandelt. Das Wissen über die Installation von Software unter verschiedenen Betriebssystemen ist auch ein nützlicher Vorteil für DevOps Ingenieure. Besonders die Einblicke in die CMake-Projekte können DevOps Ingenieuren helfen, die Entwicklungsprozesse zu optimieren.
Technische Projektmanager
Technische Projektmanager müssen die technischen Aspekte von Projekten verstehen, um Teams effektiv zu leiten. Dieser Kurs bietet einen Einblick in C/C++ Projektmanagement mit CMake, was für das Verständnis solcher Projekte wichtig ist. Auch die behandelten Themen wie Unit Testing, Doxygen-Dokumentation und CI-Testing können dazu beitragen, ein fundierteres Verständnis zu entwickeln. Ein technischer Projektmanager kann von diesem Kurs profitieren, um die Projekte und die dahinterliegenden Prozesse besser zu überblicken.
Wissenschaftlicher Programmierer
Wissenschaftliche Programmierer entwickeln spezialisierte Software für Forschung und Datenanalyse, oft in C/C++. Dieser Kurs kann für wissenschaftliche Programmierer hilfreich sein, da er das Management von C/C++ Projekten behandelt, einschließlich der Nutzung von CMake, Unit Testing mit Catch2, und Doxygen-Dokumentation. Die im Kurs erworbenen Fähigkeiten können die Effizienz und Wartbarkeit von wissenschaftlicher Software verbessern. Dieser Kurs mag eine passende Ergänzung für wissenschaftliche Programmierer sein.
Automatisierungsingenieur
Automatisierungsingenieure benötigen oft Kenntnisse in der Programmierung von Steuerungssoftware, wofür C und C++ häufig verwendet werden. Dieser Kurs mag nützliche Grundkenntnisse im Projektmanagement und wichtigen Tools wie CMake vermitteln, um Projekte zu erstellen und zu verwalten. Die Kenntnisse über Unit Testing und CI sind ebenfalls hilfreich bei der Entwicklung von Automatisierungssystemen. Automatisierungsingenieure können von diesem Kurs profitieren, um ein tieferes Verständnis für die Softwareentwicklung zu bekommen.
Finanzsoftwareentwickler
Finanzsoftwareentwickler arbeiten an der Entwicklung von Anwendungen für den Finanzsektor, die oft hohe Performanceanforderungen haben, wobei häufig C oder C++ verwendet werden. Dieser Kurs mag für einen Finanzsoftwareentwickler nützlich sein, speziell wenn er mit C/C++ Projekten zu tun hat. Ein gutes Verständnis der Themen CMake, Unit Testing, Continuous Integration ist dabei hilfreich. Die Kenntnisse über das Tooling (LTO, Clang-Tidy, Clang-Format) sind auch von Vorteil. Dieser Kurs kann einen Einstieg in die C/C++ Softwareentwicklung im Finanzbereich geben.
Datenbankentwickler
Datenbankentwickler arbeiten mit Datenbanktechnologien und entwickeln oft Software, um auf die Datenbank zuzugreifen. Dieser Kurs kann für Datenbankentwickler von Nutzen sein, wenn sie mit Komponenten arbeiten müssen, die in C/C++ geschrieben sind. Die Kenntnisse in CMake und im Projektmanagement können beim Strukturieren und Bauen von Projekten helfen. Dieser Kurs ist eine mögliche Ergänzung für Datenbankentwickler, die ihre Kenntnisse im Umgang mit C/C++ erweitern möchten.
Qualitätsingenieur
Qualitätsingenieure stellen sicher, dass Produkte und Prozesse den erforderlichen Qualitätsstandards entsprechen, und arbeiten dabei mit verschiedenen Technologien und Software. Dieser Kurs mag für Qualitätsingenieure interessant sein, die mit Softwareprojekten zu tun haben. Die Kenntnisse im Unit-Testing, Clang-Format und CI-Testing können dabei helfen, die Qualität von Softwareprojekten zu verbessern und zu sichern. Kenntnisse im C++ Projektmanagement sind ebenfalls hilfreich. Der Kurs kann Qualitätsingenieuren Einblicke in qualitätsrelevante Prozesse der Softwareentwicklung geben.
Technischer Redakteur
Ein technischer Redakteur erstellt Dokumentation, Anleitungen und andere technische Texte. In diesem Kurs gibt es einen Abschnitt zur Erstellung von Doxygen-Dokumentationen, was für einen technischen Redakteur nützlich sein kann. Dieses Wissen ist in der Softwareentwicklung relevant und kann technischen Redakteuren bei ihrer Arbeit helfen, die Dokumentation von Softwareprojekten zu verstehen und richtig zu erstellen. Dieser Kurs kann daher eine mögliche Ergänzung für angehende technische Redakteure sein.

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in C/C++ Projekte: Make, CMake, Unit Tests und Tooling [2024].
Dieses Buch bietet eine umfassende Einführung in C++ und ist ein nützliches Nachschlagewerk für fortgeschrittene Themen. Es ist besonders hilfreich, um ein tieferes Verständnis der Sprachmerkmale zu entwickeln, die in modernen C++-Projekten verwendet werden. Es dient als hervorragende Grundlage für die in diesem Kurs behandelten Themen und bietet detaillierte Erklärungen und Beispiele. Viele Universitäten und Fachhochschulen verwenden dieses Buch als Lehrbuch.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser