Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
C++ Project Management: CMake, CPack, and Beyond
Bestseller
Highest Rated
Rating: 4.6 out of 5(28 ratings)
212 students

What you'll learn

  • Learn how to enable your code to compile with CMake.
  • Learn how to create distribution packages with CPack
  • Explore the benefits of container-native development
  • Learn how to debug using sanitizers and language servers
  • Understand Debian package structure, and run your own test APT server

Course content

12 sections89 lectures8h 18m total length
  • Compilers, Generators, and CMake5:22
  • Overview of CMake Stages4:11
  • Introduction to the Development Image6:48
  • Development Image - Using Neovim5:07
  • Development Image - Using VSCode3:15
  • Where to Find Example Sources1:44

Requirements

  • Basic familiarity with C++ is assumed, including conditions/if statements, loops, and simple classes.
  • Some experience with Git is recommended.

Description

Becoming an expert C++ software engineer requires much more than learning how to code!  You'll also need to learn to navigate the complex (and often unintuitive) world of C++ tooling: the compilers, generators, build systems, package managers, containerization systems, and debuggers that support serious software.

This course is the most natural next step for developers who have learned the basics of writing C++ code.  We'll cover CMake in detail, focusing on using CMake to compile projects similar to those seen in the real world.  You'll learn how to build executables and libraries with CMake, and to distribute those projects to end-users using CPack and APT.  We won't shy away from some of the more challenging elements of CMake, including the nuances of CMake scope and variable substitution, and the steps required to make CMake packages straightforwardly consumable.   We'll also discuss basic principles of C++ project structure and maintenance, including the use of language servers and sanitizers.

I've taken great pains to make it easy to follow along with the course.  The videos are recorded within a Docker development environment that supports both Neovim and VSCode, so you'll be able to follow along in the same environment.  This also means that we'll have an opportunity to explore the benefits of container-native development in a way that might fundamentally change your workflow for software development!

Who this course is for:

  • Beginning C++ students eager for the next natural step in their education.
  • C++ coders interested in learning how to contribute to real-world projects.
  • Developers who would like to create and distribute libraries.