Tag: Build
9 posts
-
Reading CMake Errors by Phase: Compiler Detection, find_package, Missing Targets, Link Failures and Stale Caches
Real CMake errors decoded by phase: No CMAKE_CXX_COMPILER could be found, missing package config, Cannot find source file, undefined references, stale caches.
-
CMake Link Errors: LNK2019, undefined reference, and Fixes
Diagnosing CMake link errors like LNK2019 and undefined reference - common causes (missing target_link_libraries, ODR violations, ABI mismatches) and how to fix each one.
-
Makefiles for C++: Automatic Variables, Pattern Rules, -MMD Dependencies and Parallel Builds
Makefile guide for C++ projects: tabs, automatic variables, wildcards, -MMD dependencies, parallel -j, and when to prefer CMake for cross-platform builds.
-
C++ Include Paths: #include '...' vs <...>, -I, and CMake
How the compiler searches for headers: angle vs quotes, -I order, CMake target_include_directories, and fixing “No such file or directory” errors.
-
CMake for C++ Projects: Targets, Presets, find_package and C++20 Modules
Full CMake tutorial for C++: cross-platform builds, CMake 3.28+ features, CMakePresets, C++20 modules, find_package, targets, and CI/CD.
-
CMake find_package: CONFIG vs MODULE, Search Paths and Errors
How CMake find_package really searches: MODULE-then-CONFIG order, CMAKE_PREFIX_PATH and <Pkg>_ROOT, imported targets, FindBoost removal, and fixes for each error.
-
CMake Targets: PUBLIC, PRIVATE and INTERFACE Visibility and Transitive Dependencies
Modern CMake targets: add_executable/add_library, target_* commands, visibility, transitive deps, OBJECT libs, aliases—multi-library project.
-
C++ Compilation Process Explained: Preprocessing, Compiling, Assembling, and Linking
From C++ source to executable: preprocessing, compilation, assembly, and linking, plus the link errors each stage causes (library order, templates, extern "C", ABI mismatches), rpath, LTO, and how C++20 modules change the pipeline.
-
Speeding Up Turborepo Builds: Cache Outputs, Task Graph, Remote Cache and Filtering
How to make Turborepo builds faster in practice: correct outputs and inputs, a lean task graph, environment variables in the cache key, Remote Cache, and running only affected packages in CI. Uses Turborepo 2.x turbo.json syntax.