在 CentOS 中使用 GCC 的完整指南
一 安装与版本确认
sudo yum groupinstall "Development Tools" -ysudo dnf groupinstall "Development Tools" -ysudo yum install gcc gcc-c++ -y 或 sudo dnf install gcc gcc-c++ -ygcc --version、g++ --version二 快速上手 编译与运行
#include <stdio.h>
int main() { printf("Hello, CentOS GCC!\n"); return 0; }
gcc hello.c -o hello./hello#include <iostream>
int main() { std::cout << "Hello, C++\n"; return 0; }
g++ code.cpp -o code./code三 常用编译选项与多文件工程
-Wall -Wextra-g(配合 gdb 使用)-O1/-O2/-O3-static(生成不依赖外部共享库的可执行文件)gcc -E hello.c -o hello.i # 预处理
gcc -S hello.i -o hello.s # 编译为汇编
gcc -c hello.s -o hello.o # 汇编为目标文件
gcc hello.o -o hello # 链接为可执行文件
gcc main.c util.c -o appgcc -c main.c -o main.o
gcc -c util.c -o util.o
gcc main.o util.o -o app
四 多版本 GCC 管理 SCL 与手动编译
sudo yum install centos-release-scl -ysudo yum install devtoolset-9-gcc* -yscl enable devtoolset-9 bash(当前会话使用新版本)~/.bashrc 或 /etc/profile.d/ 中添加 source /opt/rh/devtoolset-9/enable,然后 source ~/.bashrcsudo yum groupinstall "Development Tools" -y 及 sudo yum install -y glibc-devel gmp-devel mpfr-devel libmpc-devel bzip2 wget texinfowget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz
tar xvf gcc-7.5.0.tar.xz && cd gcc-7.5.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/usr/local/gcc-7.5 --enable-languages=c,c++ --disable-multilib --with-system-zlib
make -j$(nproc)
sudo make install
~/.bashrc):echo 'export PATH=/usr/local/gcc-7.5/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-7.5/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
gcc --version、g++ -std=c++14 -dM -E -x c++ /dev/null | grep -F __cplusplus五 常见问题与排查
sudo yum install gcc gcc-c++ -ysudo yum install -y glibc-static libstdc++-static,然后使用 -static 重新编译。scl enable devtoolset-X bash 切换;或在 ~/.bashrc 中 source /opt/rh/devtoolset-X/enable 持久化。-g 生成调试信息,配合 gdb 使用;发布时按需选择 -O2/-O3 优化级别。