公司动态
RH7.6安装最新编译工具链(普通用户,无sudo权限)
查看系统版本[10201401498login ~]$ hostnamectl Static hostname: login Icon name: computer-server Chassis: server Machine ID: 3ae6852800fb45e6b64d93796f2ce78e Boot ID: 994f4d441ec14646a743fd8e4587b05e Operating System: Red Hat Enterprise Linux Server7.6(Maipo)CPE OS Name: cpe:/o:redhat:enterprise_linux:7.6:GA:server Kernel: Linux3.10.0-957.el7.x86_64 Architecture: x86-64当先系统为红帽7.6很古老的版本了很多软件已经不支持了。检查系统是否已经安装了 devtoolset[10201401498login ~]$ls/opt/rh/|grepdevtoolset发现没有安装devtoolset检查当前 GCC 版本[10201401498login ~]$ gcc--versiongcc(GCC)4.8.520150623(Red Hat4.8.5-36)Copyright(C)2015Free Software Foundation, Inc. This isfreesoftware;see thesourceforcopying conditions. There is NO warranty;not evenforMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.当前 GCC 版本是 4.8.5确实比较老检查编译基础工具[10201401498login ~]$whichmake/usr/bin/make[10201401498login ~]$whichg /usr/bin/g[10201401498login ~]$ g--versiong(GCC)4.8.520150623(Red Hat4.8.5-36)Copyright(C)2015Free Software Foundation, Inc. This isfreesoftware;see thesourceforcopying conditions. There is NO warranty;not evenforMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.make 和 g 都有了系统自带的基础编译环境是完整的可以用它们来编译新版本的 GCC创建安装目录[10201401498login ~]$cd[10201401498login ~]$mkdir-p~/tools[10201401498login ~]$mkdir-p~/src[10201401498login ~]$ls-la~/|grep-Etools|srcdrwxr-xr-x210201401498jhdomainusers10Aug102026src drwxr-xr-x210201401498jhdomainusers10Aug102026tools下载 GCC 源码[10201401498login ~]$cd~/src[10201401498login src]$wgethttps://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz --2026-08-1015:29:50-- https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz Resolving ftp.gnu.org(ftp.gnu.org)...209.51.188.20,2001:470:142:3::b Connecting to ftp.gnu.org(ftp.gnu.org)|209.51.188.20|:443... connected. HTTP request sent, awaiting response...200OK Length:139369268(133M)[application/x-gzip]Saving to: ‘gcc-11.4.0.tar.gz’0%[]183,43414.0KB/s eta 2h 41m解压源码tar-xzfgcc-11.4.0.tar.gzls-la|grepgcc-11.4.0下载依赖库[10201401498login src]$cdgcc-11.4.0[10201401498login gcc-11.4.0]$ ./contrib/download_prerequisites2026-08-1015:38:13 URL:https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2[2383840/2383840]-gmp-6.1.0.tar.bz2[1]2026-08-1015:39:31 URL:https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2[1287202/1287202]-mpfr-3.1.6.tar.bz2[1]2026-08-1015:40:14 URL:https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz[669925/669925]-mpc-1.0.3.tar.gz[1]2026-08-1015:42:20 URL:https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2[1658291/1658291]-isl-0.18.tar.bz2[1]gmp-6.1.0.tar.bz2: OK mpfr-3.1.6.tar.bz2: OK mpc-1.0.3.tar.gz: OK isl-0.18.tar.bz2: OK All prerequisites downloaded successfully.创建独立的编译目录[10201401498login gcc-11.4.0]$cd~/src[10201401498login src]$mkdirgcc-11.4.0-build[10201401498login src]$cdgcc-11.4.0-build[10201401498login gcc-11.4.0-build]$pwd/public/home/10201401498/src/gcc-11.4.0-build配置编译选项这是最关键的一步。运行 configure 脚本来设置编译参数重点是 指定安装路径到你的 ~/tools 目录这样不需要 root 权限../gcc-11.4.0/configure--prefix$HOME/tools/gcc-11.4.0 --enable-languagesc,c --disable-multilib//安装到你的家目录下关键–prefix$HOME/tools/gcc-11.4.0//只编译 C 和 C够用加快速度–enable-languagesc,c//不编译32位库避免依赖问题–disable-multilib开始编译现在执行编译命令。这一步非常耗时可能需要 1-3 小时请耐心等待。[10201401498login gcc-11.4.0-build]$pwd/public/home/10201401498/src/gcc-11.4.0-build[10201401498login gcc-11.4.0-build]$make-j4-j 4使用 4 个核心并行编译加快速度。你可以根据服务器核心数调整比如 -j 2、-j 8安装到你的目录makeinstall这会把你编译好的 GCC 安装到 ~/tools/gcc-11.4.0/ 目录下就是 --prefix 指定的位置。配置环境变量echoexport PATH$HOME/tools/gcc-11.4.0/bin:$PATH~/.bashrcechoexport LD_LIBRARY_PATH$HOME/tools/gcc-11.4.0/lib64:$LD_LIBRARY_PATH~/.bashrcechoexport CC/public/home/10201401498/tools/gcc-11.4.0/bin/gcc~/.bashrcechoexport CXX/public/home/10201401498/tools/gcc-11.4.0/bin/g~/.bashrcsource~/.bashrc验证是否成功[10201401498login gcc-11.4.0-build]$whichgcc ~/tools/gcc-11.4.0/bin/gcc[10201401498login gcc-11.4.0-build]$ gcc--versiongcc(GCC)11.4.0 Copyright(C)2021Free Software Foundation, Inc. This isfreesoftware;see thesourceforcopying conditions. There is NO warranty;not evenforMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[10201401498login gcc-11.4.0-build]$ g--versiong(GCC)11.4.0 Copyright(C)2021Free Software Foundation, Inc. This isfreesoftware;see thesourceforcopying conditions. There is NO warranty;not evenforMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.进入源码目录并下载 CMakecd~/srcwgethttps://github.com/Kitware/CMake/releases/download/v3.29.3/cmake-3.29.3-linux-x86_64.tar.gz解压 CMaketar-xzfcmake-3.29.3-linux-x86_64.tar.gzls-la|grepcmake移动到 tools 目录mvcmake-3.29.3-linux-x86_64 ~/tools/cmake-3.29.3ls-la~/tools/|grepcmake配置 CMake 环境变量echoexport PATH$HOME/tools/cmake-3.29.3/bin:$PATH~/.bashrcsource~/.bashrc验证是否成功[10201401498login src]$whichcmake ~/tools/cmake-3.29.3/bin/cmake[10201401498login src]$ cmake--versioncmake version3.29.3 CMake suite maintained and supported by Kitware(kitware.com/cmake).CMake 安装成功确认版本[10201401498login src]$whichgcc ~/tools/gcc-11.4.0/bin/gcc[10201401498login src]$ gcc--version|head-1gcc(GCC)11.4.0[10201401498login src]$whichg ~/tools/gcc-11.4.0/bin/g[10201401498login src]$ g--version|head-1g(GCC)11.4.0[10201401498login src]$whichcmake ~/tools/cmake-3.29.3/bin/cmake[10201401498login src]$ cmake--version|head-1cmake version3.29.3[10201401498login src]$echo$PATH|tr:\n|grep-Etools|gcc|cmake|head-10/public/home/10201401498/tools/cmake-3.29.3/bin /public/home/10201401498/tools/gcc-11.4.0/bin编译安装新版本的make[10201401498login build]$cd/public/home/10201401498/software/src[10201401498login src]$wgethttps://ftp.gnu.org/gnu/make/make-4.4.tar.gz --2026-08-11 08:00:49-- https://ftp.gnu.org/gnu/make/make-4.4.tar.gz Resolving ftp.gnu.org(ftp.gnu.org)...209.51.188.20,2001:470:142:3::b Connecting to ftp.gnu.org(ftp.gnu.org)|209.51.188.20|:443... connected. HTTP request sent, awaiting response...200OK Length:2307891(2.2M)[application/x-gzip]Saving to: ‘make-4.4.tar.gz’100%[]2,307,8911.24MB/sin1.8s2026-08-11 08:00:53(1.24MB/s)- ‘make-4.4.tar.gz’ saved[2307891/2307891][10201401498login src]$tar-xzfmake-4.4.tar.gz编译安装./configure--prefix/public/home/10201401498/software/install/make-4.4makemakeinstall验证[10201401498login make-4.4]$ /public/home/10201401498/software/install/make-4.4/bin/make--version|head-1GNU Make4.4配置echoexport PATH/public/home/10201401498/software/install/make-4.4/bin:$PATH~/.bashrcechoMAKE/public/home/10201401498/software/install/make-4.4/bin/make~/.bashrcsource~/.bashrc清理磁盘rm-rf~/src/gcc-11.4.0-buildrm-rf~/src/gcc-11.4.0.tar.gzrm-f~/src/cmake-3.29.3-linux-x86_64.tar.gz后续提示新终端自动生效已经把配置写入了 ~/.bashrc之后每次登录或打开新终端都会自动使用 GCC 11.4.0。编译 C17/C20 代码现在你可以放心使用 -stdc17 或 -stdc20 了