The C++ toolchain at a glance
So far every program has been one main.cpp compiled with one command. A real C++ project is dozens of source files, several libraries, a test suite and at least three platforms, and the language itself has no standard build tool or package manager. Every team therefore assembles the same stack: a build system generator (almost always CMake), a package manager (Conan or vcpkg), a test framework (GoogleTest or Catch2), formatting and static analysis from LLVM (clang-format, clang-tidy), and CI that builds with sanitizers. These labs show the smallest real version of each.
| Tool | Job | You meet it when |
|---|---|---|
| CMake (+ Ninja) | Describe targets once, generate builds for any compiler and IDE | Day one of almost any C++ job |
| Conan / vcpkg | Download and build third-party libraries | The first time you need JSON, HTTP, a database driver |
| GoogleTest / Catch2 | Unit tests, run by ctest | Every pull request |
| clang-format / clang-tidy | Consistent formatting; static analysis and modernisation | Code review and CI |
| Sanitizers, Valgrind, perf | Memory errors, races, profiling | Debugging and performance work |
| Qt | Cross-platform desktop and embedded UIs | Desktop, automotive, industrial and medical software |
| Docker + GitHub Actions | Reproducible builds and deployment | Shipping services and CI |
