Linux离线(手动)升级GCC-4.8
来源:互联网 发布:java 图片转换base64 编辑:程序博客网 时间:2024/04/30 15:08
本文介绍在系统无法连接互联网的情况下,如何升级GCC。离线和在线升级的主要区别在于,如果可以联网,在升级gcc前的需要安装的依赖包,可以通过运行gcc安装包下的脚本自行下载安装,免去了很多的麻烦。
当前系统及GCC版本
OS:Red Hat 6.3
GCC:4.4.6
首先下载gcc安装包,本文为gcc-4.8.5.tar.gz,解压后,如果直接运行安装目录下的configure脚本,可能会因为当前系统的GMP,MPFR,MPC的版本过低而抛出如下的错误:
...configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
如果是在联网环境,可以运行安装目录下的”./contrib/download_prerequisites”脚本来下载相关的依赖。而由于我们是在局域网内,所以需要到因特网中下载这三个安装包,然后逐个安装:
- gmp: 安装包下载路径ftp://ftp.gnu.org/gnu/gmp/
- mpfr:安装包下载路径http://ftp.gnu.org/gnu/mpfr/
- mpc: 安装包下载路径 http://ftp.gnu.org/gnu/mpc/
此处使用的安装包为 gcc-4.8.5.tar.gz,gmp-5.0.5.tar.bz2,mpfr-3.0.1.tar.gz,mpc-1.0.1.tar.gz.
安装gmp
GMP是一个任意精度的开源算术库,可用于符号整数,有理数,浮点数计算。
# tar -jxvf gmp-5.0.5.tar.bz2# cd gmp-5.0.5# ./configure# make & make check# make install
安装mpfr
mpfr主要为提供C/C++多精度浮点运算。
# tar -zxvf mpfr-3.0.1.tar.gz# cd mpfr-3.0.1# ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib# make & make check# make install
安装mpc
Gnu Mpc为C/C++提供高精度,正确舍入的复数计算。
# tar -zxvf mpc-1.0.1.tar.gz# ./configure# make & make check# make install
安装后,它们的头文件位于”/usr/local/include”,默认情况下程序可以自动找到该路径;它们的动态库位于”/usr/local/lib”,可在环境变量追加该路径,此处就在当前用户的环境变量上加上该路径:
# vim ~/.bash_profile export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64:/usr/lib64# source ~/.bash_profile
安装GCC
# tar -zxvf gcc-4.8.5.tar.gz# cd gcc-4.8.5
建立编译目录,我们将使用安装包根目录下的配置脚本,进行gcc编译前的配置,将在该目录下产生Makefile文件,并将编译结果保存于当前目录:
# mkdir gcc-build-4.8 ; cd gcc-build-4.8
要进行哪些配置了?可以参考当前gcc编译器的配置,直接运行gcc -v即可
# gcc -vUsing built-in specs.Target: x86_64-redhat-linuxConfigured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linuxThread model: posixgcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)
参考之前的配置,根据实际需要去掉了一些需要联网下载依赖的编译项,本次编译配置如下:
# ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --disable-multilib --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java --enable-java-awt=gtk --disable-dssi --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
此时在当前目录下,将产生Makefile文件,运行make进行编译,需要花费较长时间:
# make & make instal
验证安装
除了可以通过”gcc -v”查看安装后的gcc版本,还可以通过编写C++11标准的程序来验证,在编译C++11程序时,应该加上”std=c++11”,否则默认是以C99进行编译,将会抛出错误。
- Linux离线(手动)升级GCC-4.8
- Linux系统手动升级gcc
- Linux(CentOS 6.5) 手动升级gcc到gcc-6.1.0
- Redhat 6.6离线升级gcc-4.8
- linux:centos gcc 升级 gcc-4.8.1
- linux下升级GCC 4.8
- linux 离线安装gcc
- linux 手动安装gcc
- Linux GCC升级4.8.2 支持C++11 (CentOS)
- linux gcc 4.8.5 升级编译
- linux升级gcc
- Linux升级gcc
- Linux升级安装GCC
- Linux升级gcc版本
- Linux 下firefox手动升级
- Linux | Ubuntu 升级 GCC 到 gcc-5.3
- 离线升级gcc至最新!目前是6.3
- CentOS6.9完全离线升级安装gcc-5.4.0
- ADV-147-学霸的迷宫
- osgAnimation 例子 注释
- MySQL 5.7.18 zip 文件安装过程
- 高精度除法模板
- Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能
- Linux离线(手动)升级GCC-4.8
- 什么是张量 (tensor)?
- 蓝桥杯------------2n皇后----(回溯法,Java)
- ADV-143-扶老奶奶过街
- 背着包前行,寻找未来的灯塔
- C++算法学习/约瑟夫问题之找出最后的存活者
- 全景图像&拼接(一)关于全景拼接论文推荐
- 【人工智能】李开复MIT演讲:这5个原因将导致中国AI赶超美国
- 计算几何入门题推荐