GCC编译器在CentOS中如何使用
导读:在 CentOS 中使用 GCC 的完整指南 一 安装与版本确认 安装开发工具组(包含 gcc、g++、make 等): CentOS 7/8(yum):执行:sudo yum groupinstall "Development Too...
在 CentOS 中使用 GCC 的完整指南
一 安装与版本确认
- 安装开发工具组(包含 gcc、g++、make 等):
- CentOS 7/8(yum):执行:
sudo yum groupinstall "Development Tools" -y - CentOS 8/9(dnf):执行:
sudo dnf groupinstall "Development Tools" -y
- CentOS 7/8(yum):执行:
- 单独安装 C/C++ 编译器(可选):
sudo yum install gcc gcc-c++ -y或sudo dnf install gcc gcc-c++ -y - 验证安装:
gcc --version、g++ --version - 版本提示:CentOS 7 默认 GCC 4.8.5;如需更新版本,见下文“多版本管理”。
二 快速上手 编译与运行
- 示例 C 程序(hello.c):
#include < stdio.h> int main() { printf("Hello, CentOS GCC!\n"); return 0; } - 编译与运行:
- 编译:
gcc hello.c -o hello - 运行:
./hello
- 编译:
- 示例 C++ 程序(code.cpp):
#include < iostream> int main() { std::cout < < "Hello, C++\n"; return 0; }- 编译:
g++ code.cpp -o code - 运行:
./code
- 编译:
- 说明:C++ 源文件建议使用 g++(会自动链接 C++ 标准库)。
三 常用编译选项与多文件工程
- 常用选项:
- 警告与规范:
-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 app - 分别编译再链接:
gcc -c main.c -o main.o gcc -c util.c -o util.o gcc main.o util.o -o app
- 一起编译:
- 小技巧:增量构建时,未修改的 .o 文件可直接复用,提高编译效率。
四 多版本 GCC 管理 SCL 与手动编译
- 使用 SCL(推荐,安全易用):
- 安装 SCL 源:
sudo yum install centos-release-scl -y - 安装工具集(示例为 devtoolset-9):
sudo yum install devtoolset-9-gcc* -y - 临时启用:
scl enable devtoolset-9 bash(当前会话使用新版本) - 永久启用:在
~/.bashrc或/etc/profile.d/中添加source /opt/rh/devtoolset-9/enable,然后source ~/.bashrc
- 安装 SCL 源:
- 手动编译安装(可控性高,耗时较长):
- 安装依赖:
sudo yum groupinstall "Development Tools" -y及sudo yum install -y glibc-devel gmp-devel mpfr-devel libmpc-devel bzip2 wget texinfo - 下载并解压 GCC 源码(示例 7.5.0):
wget 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 - 配置与编译(推荐 out-of-source 构建):
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
- 安装依赖:
- 提示:SCL 与手动编译可并存,生产环境优先选择 SCL 以避免影响系统默认编译器。
五 常见问题与排查
- 命令未找到或 C++ 链接失败:
- 安装 C/C++ 编译器:
sudo yum install gcc gcc-c++ -y - C++ 源文件请用 g++ 编译,避免手动链接 libstdc++ 的繁琐与遗漏。
- 安装 C/C++ 编译器:
- 静态链接报错缺库:
- 安装静态库:
sudo yum install -y glibc-static libstdc++-static,然后使用-static重新编译。
- 安装静态库:
- 多版本并存与切换:
- 使用 SCL 的
scl enable devtoolset-X bash切换;或在~/.bashrc中source /opt/rh/devtoolset-X/enable持久化。
- 使用 SCL 的
- 调试与优化:
- 开发阶段建议加上
-g生成调试信息,配合 gdb 使用;发布时按需选择-O2/-O3优化级别。
- 开发阶段建议加上
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: GCC编译器在CentOS中如何使用
本文地址: https://pptw.com/jishu/788112.html
