[Linux服务器] linux离线手动安装升级gcc

1094 0
Honkers 2025-6-27 06:42:16 来自手机 | 显示全部楼层 |阅读模式

前言

GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言 的程序,可根据需要选择安装支持的语言。
查看当前gcc版本:

  1. gcc --version
复制代码

一、下载源码

gcc-7.2.0版本:https://ftp.gnu.org/gnu/gcc/
下载依赖,共依赖四个工具gmp、isl、mpc、mpfr
gmp-6.1.0版本:https://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
isl-0.16版本: http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure
mpc-1.0.3版本 :https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
mpfr-3.1.4版本:https://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.gz

提示:对应不同版本的gcc,对应的依赖版本可能也不一样,具体版本查看gcc-7.2.0/contrib/download_prerequisites

有网络的Linux 安装 gcc 的时候直接执行 ./contrib/download_prerequisites,自带下载安装依赖:mpfr、mpc、gmp 等

二、离线安装使用步骤

1.解压

  1. tar -zxvf gcc-7.2.0.tar.gz
  2. tar -xf mpfr-3.1.4.tar.gz
  3. tar -xf isl-0.16.tar.bz2
  4. tar -xf mpc-1.0.3.tar.gz
  5. tar -xf gmp-6.1.0.tar.bz2
复制代码

2.安装

2.1安装依赖包

  1. cd gmp-6.1.0 && ./configure && make && make install
  2. cd mpfr-3.1.4 && ./configure && make && make install
  3. cd isl-0.16 && ./configure && make && make install
  4. cd mpc-1.0.3 && ./configure && make && make install
复制代码

确认 gmp, mpfr, mpc 等包已经安装,并且版本正确

  1. rpm -qa | grep gmp
  2. rpm -qa | grep mpfr
  3. rpm -qa | grep mpc
复制代码

2.2安装gcc

查看linux版本 uname -a
我的版本是
aarch64 GNU/Linux

#运行configure时加上对应版本的信息,不然可能会报错,linux版本不同会有所区别
–build=aarch64-unknown-linux-gnu --host=aarch64-unknown-linux-gnu

  1. mkdir build //不能在source目录下configure
  2. cd build
  3. $PWD/../gcc-7.2.0/configure --prefix=/usr/local/gcc_deps --build=aarch64-unknown-linux-gnu --host=aarch64-unknown-linux-gnu
  4. // 不运行这个$PWD/../gcc-7.2.0/configure --prefix=usr/local/gcc_deps
  5. make
  6. make check
  7. make install
复制代码

编译好后,gcc安装到了usr/local/gcc_deps,内容如下

2.3配置gcc环境

如果安装位置不是在/usr,需要配置对应的环境

编译gcc时configure命令把–prefix=usr/local/gcc_deps改为–prefix=/usr,gcc默认配置在/usr下,直接替换了原先的gcc版本,出了问题难恢复。
安装在其他目录下,需安装后对应配置gcc环境

在命令行中设置

  1. export PATH=/usr/local/gcc_deps/bin:$PATH
  2. export LD_LIBRARY_PATH=/usr/local/gcc_deps/lib64:$LD_LIBRARY_PATH
复制代码

永久设置

可以在.bashrc或.profile等文件中永久设置LD_LIBRARY_PATH环境变量:

  1. echo 'export LD_LIBRARY_PATH=/usr/local/lib' >> ~/.bashrc
复制代码

三、源码安装gcc各种情况的解决

1. 未找到命令

1.1 XXX is missing on your system.

  1. ...行81: makeinfo:未找到命令
  2. WARNING: 'makeinfo' is missing on your system.
  3. You should only need it if you modified a '.texi' file, or
  4. any other file indirectly affecting the aspect of the manual.
  5. You might want to install the Texinfo package:
  6. <https://www.gnu.org/software/texinfo/>
  7. The spurious makeinfo call might also be the consequence of
  8. using a buggy 'make' (AIX, DU, IRIX), in which case you might
  9. want to install GNU make:
  10. <https://www.gnu.org/software/make/>
  11. ...
复制代码

1.2 解决方法

重新touch编译文件

  1. WARNING: 'aclocal-1.14' is missing on your system.
  2. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: It also requires GNU Autoconf, GNU m4 and Perl in order to run: make[1]: *** [aclocal.m4] Error 127
复制代码

系统中没有找到’aclocal-1.14’,但存在1.15版本的aclocal。
可以试一下重新touch几个编译文件

  1. touch configure.ac aclocal.m4 configure Makefile.am Makefile.in
复制代码

安装对应命令

下载路径:https://ftp.gnu.org/gnu/texinfo/

  1. tar zxvf texinfo-5.2.tar.gz
  2. cd texinfo-5.2
  3. ./configure --prefix=/usr
  4. make
  5. make check
  6. make install
复制代码
  • makeinfo
    下载路径:https://ftp.gnu.org/gnu/texinfo/

  • help2man: can’t get `–help’ info from automake-1.15 Try
    参考链接:https://www.jianshu.com/p/31a30a969a82

  • WARNING: ‘aclocal-1.16’ is missing on your system
    参考链接:https://blog.csdn.net/poem_2010/article/details/102527733

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行