Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
Log in
Register
Deepin上通过Git源码安装GCC任何版本的方法(GCC-9实践)
Theme area
4174
views ·
1
replies ·
To
floor
Go
hh5blxj
deepin
2020-03-28 21:42
Author
本帖最后由 hh5blxj 于 2020-3-28 21:49 编辑
安装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下的代码。
>> git branch
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 -j 8
如果你按照前面所说安装了flex,在deepin里面运行上面命令应该不会报错。如果没有安装flex,安装报错了,请再安装了flex,同时记住在编译之前,必须先clean掉之前编译的内容。比如:sudo make realclean 然后再./configure --disable-multilib,最后再sudo make -j8
上面安装很耗时间,看你的CPU性能,我的是i5u系列,花了接近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都可以,希望能够帮助到你。
Reply
Like 0
Favorite
View the author
All Replies
欢乐马
deepin
2024-08-31 18:18
#1
这个和gcc-9-base 包有什么区别吗?
Reply
Like 0
View the author
Please
sign
in first
New Thread
Popular Ranking
Change
Add python3-pyqt6.qtwebengine to the Deepin Linux 23 reposit
Building Deepin OS for arm
Popular Events
More
安装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下的代码。
>> git branch
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 -j 8
如果你按照前面所说安装了flex,在deepin里面运行上面命令应该不会报错。如果没有安装flex,安装报错了,请再安装了flex,同时记住在编译之前,必须先clean掉之前编译的内容。比如:sudo make realclean 然后再./configure --disable-multilib,最后再sudo make -j8
上面安装很耗时间,看你的CPU性能,我的是i5u系列,花了接近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都可以,希望能够帮助到你。