【ubuntu】在Ubuntu16-linux升级gcc版本【安装gcc6.2.0】

step1:  下载源码, 将如下文件下载(保存的路径是:下载)

(1)gcc-6.2.0.tar.gz    

(2)编译安装GCC所需要的依赖包:gmp-6.1.2.tar.bz2、mpfr-4.0.1.tar.bz2、mpc-1.1.0.tar.gz

[上述几个打包文件可从库文件下载]

step2:开始安装下载的文件包:安装依赖包,安装顺序gmp 、mpfr、mpc

(1)安装gmp

ctrl+alt+t打开终端

cd 下载    [进入"下载"文件夹]

tar -xvf gmp-6.1.2.tar.bz2 [接解压缩包]

cd gmp-6.1.2 [ 进入“gmp-6.1.2”文件夹]

mkdir build [ 在“gmp-6.1.2”文件夹下创建“build”文件夹]

cd build [ 进入“ build” 文件夹]

../configure --prefix=/usr/local/gmp-6.1.2 --build=x86_64-linux-gnu   [1、前提在/usr/local/路径下,创建文件夹gmp-6.1.2。2、--prefix=/usr/local/gmp-6.1.2指定安装路径。3、--build指定软件安装的系统平台,如果没有指定,默认值将是‘-host’选项的值 http://www.jb51.net/LINUXjishu/363271.html]

make [ make命令会找到当前目录的makefile进行编译,在执行这一步的时候出错了:configure:error:no usable m4 in$path or /user/5bin 缺少M4文件,需要安装:sudo apt-get install m4]

make check [测试makefile的流程]

sudo make install [安装]

(2)安装mpfr

ctrl+alt+t

cd 下载   

tar -xvf mpfr-4.0.1.tar.bz2

cd mpfr-4.0.1

mkdir build

cd build

../configure --prefix=/usr/local/mpfr-4.0.1 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2  [ 由于mpfr依赖gmp 库,所以在configure时,需要设置好gmp库所在的位置,供安装mpfr库时使用]

make

make check

sudo make install

(3)安装mpc

ctrl+alt+t

cd 下载   

tar -xvf mpc-1.1.0.tar.gz

cd mpc-1.1.0

mkdir build

cd build

../configure --prefix=/usr/local/mpc-1.1.0 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 

make

make check

sudo make install

备注:如果不安装依赖库,在GCC configure配置的时候,会出现错误 configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

step3:安装GCC

ctrl+alt+t打开终端

cd 下载    [进入"下载"文件夹]

tar -xvf gcc-6.2.0.tar.gz [接解压缩包]

cd gcc-6.2.0 [ 进入“ gcc-6.2.0”文件夹]

mkdir build [ 在“ gcc-6.2.0”文件夹下创建“build”文件夹]

cd build [ 进入“ build” 文件夹]

../configure --prefix=/usr/local/gcc-6.2.0 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib --program-suffix=-6.2.0   [1、前提在/usr/local/路径下,创建文件夹gcc-6.2.0。2、--program-suffix=-6.2.0 指定将被加到所安装程序的名字上的后缀 我安装时直接copy网上教程--program-suffix=-4.7最后查看/usr/local/gcc-6.2.0/bin/时 ,都是gcc-4.7,g++-4.7等,下晕我了,我都怀疑自己下载的包有问题。附上详细链接https://blog.csdn.net/zjt289198457/article/details/6918656 ]

make [ make命令会找到当前目录的makefile进行编译]

[编译了10+分钟,就出错了,没有截图,网搜贴一下问题error while loading shared libraries: libmpc.so.6: cannot open shared object file: No such file or directory,或者config.log中conftest.c:10:21: fatal error: isl/ctx.h: No such file or directory isl/schedule.h: No such file or directory查了很久很多人都有这个error,是因为找不到依赖库,手动添加环境变量。

法1:

ctrl+alt+t

gedit /etc/environment [打开environment文件]

在environment文件末尾添加:usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/gcc-6.2.0/lib"

souce /etc/environment  [使添加的环境变量马上生效]

法2:

ctrl+alt+t

sudo gedit  ~/.bashrc  [打开.bashrc文件]

.bashrc文件末尾添加:export LD_LIBRARY_PATH=:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/gcc-6.2.0/lib

souce ~/.bashrc    [使添加的环境变量马上生效]

Ubuntu 系统中设置环境变量   https://jingyan.baidu.com/article/db55b609a3f6274ba30a2fb8.html]

make clean [清除下之前没成功编译的文件]

make [继续make] [据说要经过漫长的等待,然后我就去午饭午休取快递回来后发现漫长已过去,make无error出现。其中本人在执行过程中又出现了问题:通过终端发现需要在x86_64-linux-gnu/libgcc中查找config.log。报错:libmpfr.so.6: cannot open shared object file: No such file or directory。但是自己已经在~/.bashrc加上了,因此搜索资料自己在终端中又输入:

export LD_LIBRARY_PATH=/usr/local/mpfr-4.0.1/lib:$LD_LIBRARY_PATH
sudo ldconfig

export LD_LIBRARY_PATH=/usr/local/gmp-6.1.2/lib:$LD_LIBRARY_PATH
sudo ldconfig

export LD_LIBRARY_PATH=/usr/local/mpc-1.1.0/lib:$LD_LIBRARY_PATH
sudo ldconfig

]

make check [测试makefile的流程] [又出错了,没有截图是类似“/bin/bash: autogen: 未找到命令”,万能的前辈们说是没安装autogen:sudo apt-get install autogen]

make check [终于顺利了一次]

sudo make install [gcc安装结束]

step4:添加新版gcc的可执行文件到命令搜索路径中

ctrl+alt+t  [打开终端]

gcc -v [查看gcc版本,发现依然是原来的gcc-5.4.0,原因是:gcc-6.1.0的可执行文件没有加入到搜索命令路径中]

which gcc [输出“/usr/bin/gcc”,指的是:gcc命令调用的是/usr/bin路径下的gcc]

sudo rm /usr/bin/gcc  [删除usr/bin路径下的gcc,因为当前的usr/bin路径下的gcc链接指向的是老版本gcc-5.4.0]

sudo ln -si /usr/local/gcc-6.2.0/bin/gcc-6.2.0 gcc [将usr/bin路径下的gcc使用软链接到gcc-6.2.0]

gcc -v [查看gcc版本,确定成功为新版本]

step5:同step,添加新版g++的可执行文件到命令搜索路径中

ctrl+alt+t 

g++ -v

which g++ 

sudo rm /usr/bin/g++ 

sudo ln -si /usr/local/gcc-6.2.0/bin/g++-6.2.0 g++

g++ -v

step6:编译hello ubuntu

ctrl+alt+t [打开控制台]

sudo apt-get install vim [安装vim]

mkdir my_c++ [在home下创建my_c++文件夹]

 cd my_c++

vim hello.cpp [新建文件名hello.cpp的源文件]

i [键入i 进入insert模式,即编辑输入模式,写下经典代码:]

#include
#include
using namespace std;

int main(int argc,char const *argv[])
{
   cout<<"hello unbuntu!"<

   return 0;

}

Esc [输入完成后,按Esc键回到normal模式]

:wq [保存并退出vim,返回终端]

g++ hello.cpp -o hello [编译hello.cpp]

./hello [运行程序]

就可以看到结果:hello unbuntu!

 

转载自:

https://blog.csdn.net/liuyunduo/article/details/80179310

 

https://blog.csdn.net/joshuaxx316/article/details/50553185

你可能感兴趣的:(linux)