“Linux 下 C++ 配置/构建缓慢”是一个很常见的问题,原因通常不在某一项,而是编译器、构建系统、依赖管理、系统环境共同作用的结果。下面按最常见原因 → 优化方向来说明。
C++ 模板和头文件机制导致:
.cpp 可能间接包含几百甚至上千个头文件✅ 表现:
.cpp 都要几秒到几十秒make 时 CPU 占用高但进度慢✅ 优化:
#include,多用 前向声明#include <iosfwd> 等轻量头std::vector<std::map<std::string, std::shared_ptr<...>>>.cpp 中重复实例化✅ 优化:
template class)impl 模式隐藏实现常见问题:
Makefile 没有正确依赖CMake 每次重新运行 configure✅ 优化:
ninja 替代 makecmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
add_subdirectory 过多ccacheLinux 下 90% 的 C++ 慢问题都能被 ccache 改善
✅ 安装:
sudo apt install ccache
✅ CMake:
export CC="ccache gcc"
export CXX="ccache g++"
✅ 效果:
很多人只用:
make
✅ 正确姿势:
make -j$(nproc)
# 或
ninja
.o 文件libstdc++ + -g✅ 优化:
ld.gold / lldthin LTO✅ 优化:
✅ 优化:
find_package 而不是源码编译你可以先检查这几点:
# 1. 是否用了 ccache
which ccache
# 2. 是否并行
nproc
# 3. 是否用了 ninja
which ninja
# 4. 编译时是否大量读头文件
time g++ -c test.cpp
sudo apt install ccache ninja-build
export CC="ccache gcc"
export CXX="ccache g++"
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
ninja
如果你愿意,可以把你的:
发给我,我可以针对你的环境给具体优化方案。