在 CentOS 上优化 C 语言编译速度,可以从 编译器、系统环境、构建系统、硬件利用 等多个层面入手。下面按实用性从高到低说明。
CentOS 默认 GCC 较旧(如 4.8 / 7),可升级:
# CentOS 7
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
或安装 Clang(通常更快):
yum install clang
-O2/-O3gcc -O0 -g
gcc -O2
⚠
-O3有时反而更慢(编译时间和二进制体积)
-pipe避免磁盘临时文件:
gcc -pipe
对大型项目(如 C++/大型 C):
gcc -x c-header common.h -o common.h.gch
make -j$(nproc)
查看 CPU 核数:
nproc
yum install ninja-build
cmake -GNinja
ninja
yum install ccache
使用方式:
export CC="ccache gcc"
export CXX="ccache g++"
或:
ccache gcc main.c
清理缓存:
ccache -C
查看命中率:
ccache -s
适合服务器集群:
yum install distcc
mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build
cd /tmp/build
cmake /path/to/src
make -j$(nproc)
编译完后拷贝结果
/home 在 NFS 上#include-MMD -MP自动管理依赖,避免无效重编:
gcc -MMD -MP -c main.c
编译慢但运行快,仅发布用:
gcc -flto -O2
ulimit -n 65535
setenforce 0
✅ 最快开发编译方案:
ccache + clang + ninja + tmpfs + -j$(nproc)
示例:
mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build
cd /tmp/build
export CC="ccache clang"
cmake -GNinja /src
ninja
如果你愿意,可以告诉我:
我可以给你一套针对性的优化方案。