刚刚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. [LUOGU]P1508 Likecloud-吃、吃、吃

    题目背景 问世间,青春期为何物? 答曰:"甲亢,甲亢,再甲亢:挨饿,挨饿,再挨饿!" 题目描述 正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中.某日 ...

  2. Linux基础学习-网络管理

    Linux系统网络管理NetworkManager 1 启动网络管理服务和开机自启动 在rhel7中网路管理相关命令nmcli,nmtui,nmtui-edit,nm-connection-edito ...

  3. 第3-5课 填充左侧菜单/品牌的添加 Thinkphp5商城第四季

    目录 左侧菜单的填充 品牌的添加 form标签里要加上method="post" enctype="multipart/form-data" form标签里如果 ...

  4. 安装ipython的情况总结

    在知乎上看待一位朋友的Python的学习记录,准备跟着学一下.这位朋友用了ipython(因为他主要做科学计算,我自己将来要学习数据科学,感觉很合适),酒准备安装一下ipython,没想到出了不少问题 ...

  5. python——全局变量&局部变量

    >>> count = 5 >>> def function(): count = 10 print(10) >>> function() 10 ...

  6. centos7 killall 命令

    centos7精简安装后,使用中发现没有killall命令. 安装这个包即可: yum install psmisc

  7. 【HIHOCODER 1055】 刷油漆(树上背包)

    描述 小Ho有着一棵灰常好玩的树玩具!这棵树玩具是由N个小球和N-1根木棍拼凑而成,这N个小球都被小Ho标上了不同的数字,并且这些数字都是处于1..N的范围之内,每根木棍都连接着两个不同的小球,并且保 ...

  8. MIP启发式算法:Variable neighborhood search

    *本文主要记录和分享学习到的知识,算不上原创. *参考文章见链接. 本文主要讲述启发式算法中的变邻域搜索(Variable neighborhood search).变邻域搜索的特色在于邻域结构的可变 ...

  9. HDU 4738 双连通分量 Caocao's Bridges

    求权值最小的桥,考虑几种特殊情况: 图本身不连通,那么就不用派人去了 图的边双连通分量只有一个,答案是-1 桥的最小权值是0,但是也要派一个人过去 #include <iostream> ...

  10. managed unmanaged

    Enable function-level control for compiling functions as managed or unmanaged.     #pragma managed # ...