“Linux 下 C++ 配置(构建/编译)很慢”是一个很常见的问题,通常不是单一原因,而是多个因素叠加。下面从最常见到较少见给你系统梳理一下,并给出对应的优化方向。
C++ 编译器本质上是文本处理 + 语义分析:
#include 会递归展开.cpp 重编✅ 表现:
make 时大量 .o 重新生成✅ 优化:
#include,多用 .h 代替 .hpp很多人实际是在:
make clean && make
或者 CMake 每次都清 cache。
✅ 优化:
cleanccacheninja 代替 makeDebug 构建默认:
✅ 优化:
-O0 + split dwarf(-gsplit-dwarf)CMake 慢通常出现在:
find_package 太多execute_process 调用外部命令✅ 优化:
CMakePresets.jsonfind_* 调用ccache + export CCACHE_DIRmake:
ninja:
✅ 优化:
cmake -GNinja ..
ninja
✅ 优化:
很多人忘了开并行:
make -j4
✅ 推荐:
nproc
make -j$(nproc)
std::vector<std::map<...>>✅ 优化:
.cpp大项目链接可能比编译还慢。
✅ 优化:
gold / lld你可以看看中了几条:
ccachemake 而不是 ninja如果你想要一个立竿见影的配置:
# 编译器加速
export CC="ccache gcc"
export CXX="ccache g++"
# CMake
cmake -GNinja -DCMAKE_BUILD_TYPE=Debug ..
# 构建
ninja
如果你愿意,可以告诉我:
make 还是 cmake我可以直接给你针对性的加速方案。