在 CentOS 上优化 C++ 编译配置,通常可以从 编译器版本、编译参数、构建系统、系统库与内核参数 几个方面入手。下面按「实用优先级」给你一个比较完整的优化指南。
CentOS 自带 GCC 通常较旧(如 7/8),建议升级。
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
常用版本:
yum install clang clang-devel
-O2 -DNDEBUG
或追求性能:
-O3 -march=native -mtune=native
⚠ 注意:
-O3 不一定总比 -O2 快-march=native 不能跨机器运行-flto -O2
需同时作用于编译和链接:
g++ -flto -O2 a.cpp b.cpp -o app
-mavx2 -mfma
或自动:
-march=native
-fno-exceptions -fno-rtti
⚠ 会限制 STL 使用方式
make -j$(nproc)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -flto")
启用多线程:
cmake --build . -j$(nproc)
yum install ninja-build
cmake -GNinja .
ninja
-static-libgcc -static-libstdc++
yum install binutils-gold
CMake:
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=gold")
或使用 LLD:
-fuse-ld=lld
setenforce 0
ulimit -n 100000
cpupower frequency-set -g performance
perf(CPU 热点)gprof / -pgvalgrindheaptrackgoogle-perftoolsg++ -std=c++17 -O3 -march=native -flto \
-fno-exceptions -funroll-loops \
main.cpp -o app -pthread
如果你能告诉我:
我可以给你一套 针对性编译配置。