刚刚gcc 7.1也出来了,想在使用熟悉的linux下试试,特记录如下:

  准备必要的系统环境:(升级系统到最新,安装必要的工具)

  pacman -Syyu                                           #升级系统到最新
  pacman -Q gcc  gawk m4  binutils lzip          #查看必备工具是否具备,没有就安装,我的缺少了lzip,安装后,结果

  gcc 6.3.1-2
  gawk 4.1.4-2
  m4 1.4.18-1
  binutils 2.28.0-2
  lzip 1.19-1  

  mkdir gcc_builder_7.1 && cd gcc_builder_7.1

# 下载三个必须的库gmp、mpfr、mpc;根据依赖关系:mpfr依赖于gmp, mpc依赖于gmp和mpfr。 下载顺序无关紧要,安装的顺序必须是先安装gmp,再安装mpfr,然后安装mpc,最后安装gcc,由于文件是相互依赖的,千万不要弄错顺序。

#获取必要的文件
# gmp
  wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz
# mpfr
  wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.xz
# mpc
  wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
# gcc-7.1
  wget http://mirrors.webhostinggeeks.com/gcc/releases/gcc-7.1/gcc-7.1.tar.bz2

#新建源码解压保存目录,使用对应的工具解压到对应的目录,最好不要有版本号:
# 解压 gmp
lzip -d gmp-6.1.2.tar.lz
tar -xvf gmp-6.1.2.tar && mv gmp-6.1.2 gmp
# 解压mpfr
tar -Jxvf mpfr-3.1.5.tar.xz && mv mpfr-3.1.5  mpfr
# 解压mpc
tar -zxvf mpc-1.0.3.tar.gz && mv mpc-1.0.3 mpc
# 解压GCC
tar -jxvf gcc-7.1.tar.bz2 && mv gcc-7.1  gcc

# 编译gmp库,安装到/usr/gcc_7_1目录,以x86_64-linux-gnu内核
cd gmp                                                         #进入gmp源码目录
mkdir build && cd build                                     #准备编译目录
../configure --prefix=/usr/gcc_7_1 --build=x86_64-linux-gnu               #配置编译选项
make  -j4                                                      #编译
sudo make install                                              #编译安装

# 编译mpfr库,安装到/usr/gcc_7_1目录,以x86_64-linux-gnu内核,以gmp库
cd ../../mpfr                                                   #进入mpfr源码目录
mkdir build && cd build                                     #准备编译目录
../configure --build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1  #配置编译选项
make    -j4                                                           #编译
sudo make install                                            #编译安装

# 编译mpc库,依赖gmp、mpfr,内核...
cd ../../mpc                                                    #进入mpc源码目录
mkdir build && cd build                                      #准备编译目录
../configure
--build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1
--with-mpfr=/usr/gcc_7_1   #配置编译选项
make    -j4                                                   #编译
sudo make install                                             #编译安装

#编译GCC源码
cd ../../                                                       #进入gcc源码目录
mkdir build && cd build                                       #准备编译目录
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
#下一行是配置编译环境
../gcc/configure
--build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1
--with-mpfr=/usr/gcc_7_1 --with-mpc=/usr/gcc_7_1
--enable-checking=release --enable-languages=c,c++,fortran
--disable-multilib --program-suffix=-7.1
make   -j4                                                                                      #编译

#make -jN,可以调整n的数值,例如:make -j4,如果编译出错,执行make clean后直接make,只是编译过程会比较慢。
sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib64                                         #链接库文件
sudo make install                                                                              #编译安装
export

PATH=/usr/gcc_7_1/bin:$PATH                                             
          

#将gcc 7.1添加到系统路径,或者直接编辑home目录下.bashrc文件,在最后添加 export
PATH=/usr/gcc_7_1/bin:$PATH

# 调用编译器测试
gcc-7.1  -v                                                    #结果如下:
使用内建 specs。
COLLECT_GCC=gcc-7.1
COLLECT_LTO_WRAPPER=/usr/gcc_7_1/libexec/gcc/x86_64-linux-gnu/7.1.0/lto-wrapper
目标:x86_64-linux-gnu
配置为:../gcc/configure
--build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1
--with-mpfr=/usr/gcc_7_1 --with-mpc=/usr/gcc_7_1
--enable-checking=release --enable-languages=c,c++,fortran
--disable-multilib --program-suffix=-7.1
线程模型:posix
gcc 版本 7.1.0 (GCC)

#就表明安装成功

Manjaro中源码安装gcc7.1的更多相关文章

  1. Linux中源码安装编译Vim

    Linux中源码安装编译Vim Linux下学习工作少不了编辑器,Vim能使你的工作效率成倍的提高.在Ubuntu上安装vim使用命令直接安装很简单.但有时还是需要自己手动编译安装.例如: vim中的 ...

  2. centos7 中源码安装nginx

    使用nginx有一段时间了,还是有很多东西不懂的,在这里做一下自己学习过程中的一些整理,能使自己得到提升. 1.环境:centos7 1511  最小化安装 2.下载nginx,可以在系统中下载,也可 ...

  3. Centos7中源码安装Nodejs

    Step 1.确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装. [root@BobServerStation local]# yum -y install gcc gcc- ...

  4. Windows 环境下于虚拟环境中源码安装 cx_oracle

    安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...

  5. Debian7.7 wheezy 中源码安装emacs24

    我用的是ARM版本,竟然没有最新的emacs 24,很多第三方插件不能用,果断重新编译个1.追加软件源 deb-src http://ftp.cn.debian.org/debian/ wheezy ...

  6. linux中的源码安装

    前两天自己在笔记本上装了CentOs版本的虚拟机,接着要装Python3,是源码安装的挺费劲,个人总结了一些源码安装的经验,今天在这里给大家分享一下. 1. 首先准备环境,安装必要的编译工具gcc g ...

  7. Linux 源码安装 FFmpeg

    加班次数频繁,已经快一年没有写博了.由于此次在项目中使用到了 FFmpeg 来处理音视频,顾记录下在 Linux 系统中源码安装 FFmpeg 以便不时之需. 1. 安装 yasm yasm 是一个汇 ...

  8. mysql-5.5.28源码安装过程中错误总结

    介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum ...

  9. Linux系统源码安装过程中的prefix选项

    在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式.原因是:(1 ...

随机推荐

  1. 原型与原型继承demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. NOIP模拟赛 密室逃脱

    密室逃脱(maze.*) 即使czhou没有派出最强篮球阵容,机房篮球队还是暴虐了校篮球队.为了不打击校篮球队信心,czhou决定改变训练后的活动.近来,江大掌门的徒弟徒孙们纷纷事业有成,回到母校为机 ...

  3. MHA

    MHA 1. MHA简介 1.1 MHA工作原理总结为如下 1.2 MHA工具包介绍 2. 部署MHA 2.1 环境介绍 2.2 一主两从复制搭建 2.3 配置互信 2.4 下载MHA 2.5 安装M ...

  4. GoogleTest 之路3-Mocking Framework

    当你写一个原型或者测试的时候,依赖整个object 是不可行和明智的.一个 mock object和 real object 有同样的接口(所以它可以像同一个使用),但是让你在运行时进行指定它应该如何 ...

  5. jQuery 淡入淡出有png图的时候 ie8下有黑色边框

    jQuery fadeTo 时ie8 png图片有黑色边框 往带有png图的样式里加 filter:progid:DXImageTransform.Microsoft.AlphaImageLoader ...

  6. leepcode作业解析-5-21

    25.Nim游戏 你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编 ...

  7. POJ:3041-Asteroids(匈牙利算法模板)

    传送门:http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Description Bes ...

  8. mysql处理添加外键时 error 150 问题

    当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上, ...

  9. HDU——1799循环多少次(杨辉三角/动态规划/C(m,n)组合数)

    循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  10. HDU-3523 Image copy detection

    题意难懂... 大意上说就是给m个排列P1,P2,P3...Pm,自己求个排列T使得T与Pi的各个数的绝对值差之和最小. 其实也就是二分最小匹配了.... #include <cstdlib&g ...