标签:etc 编译安装 成功 isl pos with lang libs 默认
编译新版本的gcc,实际上也是需要一个低版本的gcc来编译的,毕竟所有的编译文件都是c语言开发出来的,所以系统中需要事先存在gcc才行,我们先来使用dnf命令安装一下。
[root@localhost ~]# dnf isntall gcc gcc-c++ -y
使用默认的yum源安装的gcc版本还是很低的,这也正是我们需要编译安装高版本的原因之一。
[root@localhost ~]# dnf install -y gmp-devel mpfr-devel libmpc-devel
isl工具是编译新版本gcc时需要用到的,因此需要提前安装。
[root@localhost ~]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2
[root@localhost ~]# dnf install lbzip2 -y
[root@localhost ~]# tar xf isl-0.15.tar.bz2 -C /usr/local
[root@localhost ~]# cd /usr/local/isl-0.15
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install
[root@localhost ~]# wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-7.5.0/gcc-7.5.0.tar.gz
[root@localhost ~]# tar xf gcc-7.5.0.tar.gz -C /usr/local
[root@localhost local]# cd /usr/local && ls
bin games gcc-7.5.0 include lib64 sbin srcetc lib libexec share
可以看到gcc-7.5.0
这个目录是解压后的gcc包。
/usr/local
目录下,创建一个临时目录[root@localhost local]# mkdir /tmp
注意:创建临时目录的原因是因为gcc在编译过程中需要临时放置一些文件,如果都放在gcc-7.5.0
目录下是不建议的,因此建议分开。
[root@localhost local]# cd tmp
[root@localhost tmp]# ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
--prefix指定新版本gcc安装的路径。
[root@localhost tmp]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
[root@localhost tmp]# make -j 4
编译的时间比较长,将近一个小时。这里指定4个核心来编译。
[root@localhost tmp]# make install
一般都会要求新旧版本共存,万一某些应用依赖旧版本的gcc呢?
[root@localhost tmp]# ln -sf /usr/local/gcc7/bin/gcc /usr/bin/gcc
[root@localhost tmp]# ln -sf /usr/local/gcc7/bin/g++ /usr/bin/g++
[root@localhost tmp]# ln -sf /usr/local/gcc7/include/c++/7.5.0 /usr/include/c++/7.5.0
[root@localhost tmp]# ln -sf /usr/local/gcc7/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
[root@localhost local]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/7.5.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
Thread model: posix
gcc version 7.5.0 (GCC)
[root@localhost local]#
[root@localhost local]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/7.5.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
Thread model: posix
gcc version 7.5.0 (GCC)
标签:etc 编译安装 成功 isl pos with lang libs 默认
原文地址:https://www.cnblogs.com/FengGeBlog/p/12994103.html