在 Linux 下用 C++ 编译“慢”,通常不是单一原因,而是语言特性 + 工程结构 + 工具链配置叠加导致的。下面按「最常见 → 较少见」系统说明,并给出可落地的优化建议。
#include 是文本展开.cpp 都会:
<vector>、<map>、<iostream>✅ 优化:
target_precompile_headers(myapp PRIVATE stdafx.h)
#include,多用 前向声明<algorithm> / <memory> 替代 <bits/stdc++.h>std::vector<std::map<int, std::string>> 会被反复生成✅ 优化:
template class XXX<int>;).cpp(仅必要时)#include <bits/stdc++.h> // 极慢
一次性拉入 全部 STL
✅ 优化:
common.h 被 200 个 cpp 包含✅ 优化:
make 都全量解析依赖✅ 优化:
cmake -GNinja
ninja
ccacheexport CC="ccache gcc"
export CXX="ccache g++"
-O0 也慢?✅ 优化:
lld / gold 链接器-fuse-ld=lld
make -j4 # 不够
✅ 优化:
nproc
make -j$(nproc)
✅ 优化:
✅ 优化:
-j 数量time make -j$(nproc)
检查:
bits/stdc++.h你可以告诉我:
我可以直接给你针对性的加速方案。