GCC
安装GCC可以通过多种途径,例如:
1)通过apt-get install直接安装GCC某个版本,这个最简单。
2)通过某个源下载源码安装。
官方(选择比较接近的日本源):http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-9.3.0/
国内:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/
3)通过Git来下载源码安装。
好处:可以安装各种版本,同时可以随时通过Git保持源码是最新的。
前面1)和2)都已经在论坛中有各种分享了,我这里就分享下第3)种方法。3)跟2)安装部分都是一样,只是3)可以随时看到gcc code的变化。

第一步)关联清华的gcc git库,也可以关联国内其他镜像网站的gcc git库
具体可以参考:https://mirrors.tuna.tsinghua.edu.cn/help/gcc.git/

 git clone https://mirrors.tuna.tsinghua.edu.cn/git/gcc.git

第二步) 进入下载到的gcc文件

>> cd gcc
>> git branch
 * master

可以看到当前是处于master上面,我们不需要安装最新master上面的版本,只需要安装某个release的branch code。
我们先看看有哪些branch

git branch -a

......

remotes/origin/releases/gcc-4.9
remotes/origin/releases/gcc-5
remotes/origin/releases/gcc-6
remotes/origin/releases/gcc-7
remotes/origin/releases/gcc-8
remotes/origin/releases/gcc-9
......

上面省略号部分是各种不同的branch,由于我们只需要安装gcc-9的最新代码,所以我们先切换到branch gcc-9上面

>> git checkout releases/gcc-9
切换之后,当前目录下的源码也变成了最新的gcc-9下的代码。

 master
 releases/gcc-9 

接下来的是编译和安装,我这里写下我的安装过程,如果已经会源码安装的同学可以忽略下面内容。

>> sudo apt-get install flex
flex和yacc是编译器做词法分析的,在我安装的过程中,提示需要这个,否则会报错,所以我们提前安装好了。(参考:https://www.cnblogs.com/cyanrose/p/11490979.html

vi ./contrib/download_prerequisites

这个脚本是用来检测是否依赖满足,同时会下载几个文件。但是有个问题在于,在国内去通过这个脚本下载内容太慢了,会报错。建议修改base_url就好了。
就直接修改为上面我提到的官方日本的源(国内的我还没有看到infrastructure,有的话欢迎提供,我会更新),base_url='http://ftp.tsukuba.wide.ad.jp/software/gcc/infrastructure/'
(参考:https://blog.csdn.net/davidhopper/article/details/79681695

sudo bash ./contrib/download_prerequisites

可能由于网速的关系,你即使修改了base_url,运行可能会报错,直接删除掉下载好的内容,然后再次运行。我运行了三次才成功。

./configure --disable-multilib

后面加上--disable-multilib的原因是因为我的是64位的系统,没有32位的库。你可以不加上这个选项,然后报错了再加上就好了。

sudo make -j8

如果你按照前面所说安装了flex,在deepin里面运行上面命令应该不会报错。如果没有安装flex,安装报错了,请再安装了flex,同时记住在编译之前,必须先clean掉之前编译的内容。比如:sudo make realclean 然后再./configure --disable-multilib,最后再sudo make -j8
上面安装很耗时间,看你的CPU性能,我的是R7u系列,花了接近1小时多一点。

sudo make install

第三步)查看是否成功

>> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/9.3.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib
Thread model: posix
gcc version 9.3.1 20200328 (GCC) 
>> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/9.3.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib
Thread model: posix
gcc version 9.3.1 20200328 (GCC)

如果你想安装其他版本,直接git checkout 到任意版本的任意时间的code都可以,希望能够帮助到你。

以上内容转发自: https://bbs.deepin.org/forum.php?mod=viewthread&tid=190244&extra=page%3D1

我为了装VMware虚拟机倒腾这个,装完gcc9.3还有可能显示 unable to install all modules.see logxxx,用以下代码能解决问题:

git clone https://github.com/mkubecek/vmware-host-modules.git

cd vmware-host-modules

git checkout workstation-15.5.1

sudo make

sudo make install

执行完代码应该就可以了。重启一下电脑就行了。

Last modification:May 19th, 2020 at 09:09 pm
如果觉得我的文章对你有用,请随意赞赏