有一台公共的服务器,每个人都有自己的账号,但是没有root权限,也不能使用sudo切换,此时需要使用gcc 7.5.0(默认gcc版本是4.8.5),因此只能通过在家目录下编译安装高版本gcc来达到我们的目的,这样就不会改变系统的gcc版本,也不涉及管理权限问题。
以下是编译安装gcc 7.5.0的完整步骤,可供参考。
(1)下载gcc-7.5.0源码
[zsa@localhost ~]$ wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-7.5.0/gcc-7.5.0.tar.gz
(2)解压文件
[zsa@localhost ~]$ tar zxf gcc-7.5.0.tar.gz
[zsa@localhost ~]$ cd gcc-7.5.0
(3)执行以下命令,下载依赖库,也可手动下载文件到当前目录。
[zsa@localhost ~]$ contrib/download_prerequisites
(4)创建build文件夹并切换路径
[zsa@localhost gcc-7.5.0]$ mkdir build && cd build
(5)执行configure命令,检查编译环境并生成MakeFile文件
[zsa@localhost build]$ ../configure --prefix=/home/zsa/gcc_7.5.0 --enable-language=c,c++,fortran --disable-multilib
(6)编译环境检查通过,执行make命令开始编译、安装
[zsa@localhost build]$ make -j4 && make install
(7)添加临时环境变量,并打印gcc版本
export LD_LIBRARY_PATH=/home/zsa/gcc_7.5.0/lib:$LD_LIBRARY_PATH
export PATH=/home/zsa/gcc_7.5.0/bin:$PATH
能正确显示gcc版本说明编译安装成功,如此就实现了不影响系统运行的情况下使用新版本的gcc,以上方法也可用来升级系统gcc,步骤稍有不同。
注意:如果编译过程中出现错误提示:
error: Unable to find a suitable type for HOST_WIDE_INT
执行如下命令:
[zsa@localhost build]$ unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE
然后重新编译即可:
[zsa@localhost build]$ make clean && make -j4