Сегодня я хочу поговорить про боль, которую мы все знаем — долгую компиляцию больших C++ проектов.
Когда проект растёт, время сборки иногда становится просто катастрофическим. Вот несколько приёмов, которые реально помогают:
1. PCH (Precompiled Headers) — вынесите редко меняющийся код (например,
<iostream>, <vector>, <string>) в precompiled header. Это может срезать время компиляции в разы.2. Разделяйте код на интерфейсы и реализации — заголовки должны быть минимальными, только объявления. Всё, что можно, уносите в
.cpp.3. Используйте
#pragma once вместо include guard — чуть быстрее и проще.4. Минимизируйте include-цепочки — подключайте в заголовках только то, что реально нужно. Остальное — в
.cpp.5. Инкрементальная сборка — убедитесь, что сборочная система (CMake, Ninja, Make) не пересобирает лишнее.
Когда я внедрял эти подходы в одном проекте, время компиляции сократилось с 18 минут до 6. Это реально чувствуется.
📲 Мы в MAX
➡️ @cpp_geek