温馨提示×

centos c++配置慢为何

小樊
44
2026-09-09 00:47:38
栏目: 编程语言

在 CentOS 上“C++ 配置慢”(通常指 ./configure、cmake、meson 等配置阶段慢),常见原因和对应解决办法如下:


一、最常见原因

1. 编译器/工具链太老(CentOS 特性)

CentOS 7/8 默认:

  • gcc 4.8 / 8
  • 缺少现代工具

影响

  • configure 里大量 编译测试程序(compile test)
  • 每次测试都要调用慢的旧 gcc
  • 某些库检测非常耗时

✅ 解决:

# CentOS 7
yum install centos-release-scl
yum install devtoolset-11

scl enable devtoolset-11 bash

2. configure 在做大量“编译探测”

很多老项目(autotools):

  • 测试 200+ 小程序
  • 每个都:写文件 → 编译 → 链接 → 删除

表现

checking for xxx... (几十秒)

✅ 解决:

  • 使用 ccache
yum install ccache
export CC="ccache gcc"
export CXX="ccache g++"

3. 磁盘 IO 慢(机械盘 / 虚拟机)

configure 会:

  • 创建大量临时文件
  • /tmp 频繁读写

✅ 解决:

mkdir ~/tmp
export TMPDIR=~/tmp

或用 SSD / tmpfs:

mount -t tmpfs tmpfs /tmp

4. 网络慢(依赖下载)

如果是:

  • cmake + FetchContent
  • configure 下载依赖

✅ 解决:

  • 提前下载依赖
  • 设置代理 / 镜像

5. SELinux / 杀毒 / audit

CentOS 默认:

  • SELinux
  • auditd

每个文件操作都被检查 → 极慢

✅ 检查:

getenforce

临时关闭测试:

setenforce 0

6. 多核没用上(configure 是单线程)

configure 天生串行

✅ 只能:

  • 减少检测项
  • 缓存结果
./configure --help | grep cache

二、不同构建系统的慢点

autotools(./configure)

  • 编译探测最多
  • 最慢

cmake

  • 第一次慢
  • 后续快(有缓存)
rm -rf build && mkdir build && cd build
cmake ..

meson

  • 一般比 cmake 快

三、快速定位方法

看卡在哪

./configure > log.txt 2>&1

看最后一行卡住的 checking

看系统瓶颈

top
iostat -x 1

四、总结一句话

CentOS 上 C++ 配置慢,90% 是因为:旧 gcc + 大量编译探测 + 慢 IO

如果你能告诉我:

  • CentOS 版本
  • gcc 版本
  • 用的 configure / cmake / meson
  • 哪个项目

我可以给你针对性优化方案

0