首页主机资讯GCC编译器在CentOS中如何使用

GCC编译器在CentOS中如何使用

时间2026-01-21 04:42:03发布访客分类主机资讯浏览340
导读:在 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
  • 单独安装 C/C++ 编译器(可选):sudo yum install gcc gcc-c++ -ysudo dnf install gcc gcc-c++ -y
  • 验证安装:gcc --versiong++ --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
  • 手动编译安装(可控性高,耗时较长):
    • 安装依赖:sudo yum groupinstall "Development Tools" -ysudo 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 --versiong++ -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++ 的繁琐与遗漏。
  • 静态链接报错缺库:
    • 安装静态库:sudo yum install -y glibc-static libstdc++-static,然后使用 -static 重新编译。
  • 多版本并存与切换:
    • 使用 SCLscl enable devtoolset-X bash 切换;或在 ~/.bashrcsource /opt/rh/devtoolset-X/enable 持久化。
  • 调试与优化:
    • 开发阶段建议加上 -g 生成调试信息,配合 gdb 使用;发布时按需选择 -O2/-O3 优化级别。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: GCC编译器在CentOS中如何使用
本文地址: https://pptw.com/jishu/788112.html
GCC在CentOS中如何解决依赖问题 GCC在CentOS中如何进行静态编译

游客 回复需填写必要信息