Ubuntu下GCC编译速度优化实用指南
一 并行与缓存优先
make -j$(nproc)。并行能显著缩短多文件工程的构建时间。sudo apt-get install ccache;启用方式:
ccache gcc …、ccache g++ …export CC="ccache gcc" CXX="ccache g++"export PATH="/usr/lib/ccache:$PATH"sudo apt-get install distcc;配置 /etc/distcc/hosts 添加节点;导出 CC="distcc gcc" CXX="distcc g++" 后 make -j$(distcc -j)。适合大型工程的持续集成与多核服务器集群。二 构建系统与工程结构优化
g++ -x c++-header common.h -o common.h.gchg++ -include common.h …(编译器会自动优先使用 .gch)三 GCC编译选项提速
gcc -pipe foo.c -o foo。gcc -fuse-ld=gold -Wl,--threads,--thread-count,N …(N 为线程数)以减少链接耗时。四 诊断与常见误区
time make 观察耗时分布(real/user/sys),定位是 CPU 计算、I/O 还是链接成为主要瓶颈,再针对性调整并行度、缓存与 I/O 路径。五 一键可用的配置示例
sudo apt-get install build-essential ccacheexport PATH="/usr/lib/ccache:$PATH" 与 export MAKEFLAGS="-j$(nproc)"make -j$(nproc)g++ -x c++-header common.h -o common.h.gchmake -j$(nproc) CXXFLAGS="-O2 -pipe -include common.h" LDFLAGS="-fuse-ld=gold -Wl,--threads,--thread-count,$(nproc)"sudo apt-get install distcc/etc/distcc/hosts 添加节点;导出 CC="distcc gcc" CXX="distcc g++"make -j$(distcc -j)(按集群规模调节并发)