Redhat 的GCC编译器4.1版本号,为SSE4,AVX,AVX2支持不够好,官方建议4.7以上。

就这样开始了GCC升级之路。

因为Redhat 5.5它安装在一个虚拟机。全然解决,经过若干尝试,以下过程可行。

主要參考例如以下:

http://blog.sciencenet.cn/blog-714229-600604.html

http://blog.sciencenet.cn/blog-714229-600389.html

http://blog.rekfan.com/articles/13.html

GCC下载源:http://ftp.gnu.org/gnu/gcc/

yum(注冊)下载源:http://mirror.centos.org/centos-5/5.10/os/x86_64/CentOS/

一、安装GCC的依赖库

(1)install gmp

      下载gmp: http://gmplib.org/

       # mkdir -p /opt/gmp-4.3.2

    #tar -jxvf gmp-4.3.2.tar.bz2

    #cd gmp-4.3.2

    #./configure --prefix=/opt/gmp-4.3.2

    #make && make check && make install

(2)install mpfr

  下载mpfr http://www.mpfr.org/mpfr-current/#download

     #mkdir -p /opt/mpfr-2.4.2

    #tar -jxvf mpfr-2.4.2.tar.bz2

    #cd mpfr-2.4.2

    #./configure --prefix=/opt/mpfr-2.4.2 --with-gmp=/opt/gmp-4.3.2

    #make && make check && make install

(3)install mpc

     下载 http://www.multiprecision.org/index.php?prog=mpc&page=download

#mkdir -p /opt/mpc-0.8.1

    #tar -zxvf mpc-0.8.1.tar.gz

    #cd mpc-0.8.1

    #./configure --prefix=/opt/mpc-0.8.1 --with-gmp=/opt/gmp-4.3.2 --with-mpfr=/opt/mpfr-2.4.2

    #make && make check && make install

(4) build gcc

    #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gmp-4.3.2/lib:/opt/mpfr-2.4.2/lib:/opt/mpc-0.8.1/lib

二、使用Yum安装 guile

(1)  卸载rhel的默认安装的yum包

查看yum包

rpm -qa|grep yum

卸载之

rpm -qa|grep yum|xargs rpm -e --nodeps





(2)  下载新的yum包

64位linux系统下载安装包

wget http://mirror.centos.org/centos-5/5.10/os/x86_64/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm

wget http://mirror.centos.org/centos-5/5.10/os/x86_64/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm

wget http://mirror.centos.org/centos-5/5.10/os/x86_64/CentOS/yum-metadata-parser-1.1.2-4.el5.x86_64.rpm







然后进行安装

rpm -ivh yum-*

注意:yum和yum-fastestmirror相互依赖,所以同一时候安装就可以。

(3)  下载yum的配置源

wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo 下载到 /etc/yum.repos.d/ 文件夹以下





(4)   执行yum makecache生成缓存

(5)  yum install guile

三、install
autogen

安装过程中可能缺少libxml2-devel, guile-devel, 使用yum install xx 进行升级就可以

下载  http://rpm.pbone.net/index.php3/stat/26/dist/55/size/1314516/name/autogen-5.8.9-1.el5.kb.src.rpm

   .src.rpm 安装方法

    #rpm -i you-package.src.rpm 

    #cd /usr/src/redhat/SPECS (前两步和方法一同样) 

  # rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件

这时,在/usr/src/redhat/RPM/i386/ (依据详细包的不同,也可能是i686,noarch等等) 在这个文件夹下,有一个新的rpm 包,这个是编译好的二进制文件。运行:

#rpm -i new-package.rpm就可以安装完毕。引用 http://blog.csdn.net/lphpc/article/details/565823

四、安装GCC4.7

(1)# mkdir -p /opt/gcc-4.7

         #mkdir gcc_build  (在GCC源代码文件夹下)

(2)  ../configure
--prefix=/opt/gcc-4.7 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/opt/gmp-4.3.2
--with-mpfr=/opt/mpfr-2.4.2 --with-mpc=/opt/mpc-0.8.1

(3)  成功后,产生Makefile文件,然后直接make,ok-----等待-----

(4) make
install

若想又一次编译 make clean 清除上次编译遗留下的文件

uninstallation

若旧版本号是 rpm版的。查看版本号号 gcc --version 然后 rpm -e 删除了

若旧版是用源代码安装的,whereis gcc 或者 which gcc 来查看所在路径,删除就可以

接着设置工具链:

命令文件符号连接到 /usr/bin 文件夹下:

  1. #  cd /usr/bin

  2. #  ln -sv /usr/local/gcc-4.7.1/bin/gcc gcc  (假设出现反复。直接删除原始gcc就可以)

  3. #  ln -sv /usr/local/gcc-4.7.1/bin/g++ g++

库文件设置:

将/usr/local/gcc-4.7.1/lib 路径加入到环境变量LD_LIBRARY_PATH中

  1. #vi /etc/profile

加入下列代码

setenv LD_LIBRARY_PATH  /usr/local/gcc-4.7.1/lib:$LD_LIBRARY_PATH

清理现场

  1. # rm -rf gcc-4.7.1

  2. # rm -rf gcc-b

到此安装完成

能足够 使用 gcc -v 观点4.7.1的版本号不

版权声明:本文博客原创文章,博客,未经同意,不得转载。

编译AVX代码,升级Redhat 5.5 GCC至4.7.1的更多相关文章

  1. GCC编译C代码

    C程序的编译过程       常用文件的后缀名: gcc编译c代码 1.gcc 常用编译选项: 2.gcc编译方法 testc.c: #include <stdio.h> int main ...

  2. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

  3. (转载)JAVA动态编译--字节代码的操纵

    在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了.这种开发模式背后的过程是:开发人员编写的 ...

  4. 几款比较好用的C语言的集成开发环境及在windows下用命令行编译C代码

    最近要用到C,所以尝试了这几款windows平台下比较好的IDE. VS2015:比较复杂和庞大,据说从2013版本开始支持C99标准. C-free:轻巧,但是不支持C99. vc++6.0:很多学 ...

  5. JD-GUI反编译后代码逻辑分析

    一,用jd-gui.exe等工具查看源代码.如何你不会,可以参看此文章: http://blog.csdn.net/hp_2008/article/details/8207879 可以到以下连接下载可 ...

  6. 理解Babel是如何编译JS代码的及理解抽象语法树(AST)

    Babel是如何编译JS代码的及理解抽象语法树(AST) 1. Babel的作用是?   很多浏览器目前还不支持ES6的代码,但是我们可以通过Babel将ES6的代码转译成ES5代码,让所有的浏览器都 ...

  7. 使用gulp和bable实现实时编译ES6代码

    这篇文章最初发表在我自己折腾的博客站点上:使用gulp和bable实现实时编译ES6代码,该博客用了一位前辈开源的源码,基于thinkjs和vuejs开发,欢迎大家来逛逛. 问题描述> 项目开发 ...

  8. [UE4]使用UnrealVS扩展快速编译C++代码

    一.如果UE4 编辑器已经打开,则VS中的重新生成项目将不能使用,一定要关了UE4 编辑器才可以.一般不是有VS自身的编译UE4的C++代码 二.epic提供了UnrealVS扩展,可以快速编译C++ ...

  9. VC6完整项目代码升级到VS2010

    VC6完整项目代码升级到VS2010,有需要请联系我,专业C++开发,邮箱153786575@qq.com

随机推荐

  1. DICOM医学图像处理:开源库mDCM与DCMTK的比較分析(一),JPEG无损压缩DCM图像

    背景介绍: 近期项目需求,须要使用C#进行最新的UI和相关DICOM3.0医学图像模块的开发.在C++语言下,我使用的是应用最广泛的DCMTK开源库,在本专栏的起初阶段的大多数博文都是对DCMTK开源 ...

  2. 各种ESB产品比较(转)

    介绍了主流商业和开源ESB的发展趋势.可借鉴的地方和其缺点:         主要介绍:       Oracle Service Bus       WebSphere Message Broker ...

  3. hdu 5091 Beam Cannon(扫描线段树)

    题目链接:hdu 5091 Beam Cannon 题目大意:给定N个点,如今要有一个W∗H的矩形,问说最多能圈住多少个点. 解题思路:线段的扫描线,如果有点(x,y),那么(x,y)~(x+W,y+ ...

  4. Oracle 11G DataGuard生产环境又一次启动具体过程

     场景,重新启动数据库,不重新启动linux系统,所以不用考虑监听程序,#linux输入lsnrctl start1 数据库关闭1.1 关闭主库SHUTDOWN IMMEDIATE; SQL> ...

  5. RH033读书笔记(16)-Lab 17 Installation and Administration Tools

    Lab 17 Installation and Administration Tools Goal: Become familiar with system configuration tools a ...

  6. 如何设置ubuntu自己主动的睡眠时间

    我相信很多在学习linux的过程中.总会遇到,不时系统会冬眠自己主动,因此,即使再次输入password.么重要的内容怕别人看 另外假设你常常使用像Putty这样子的远程登录软件的话,假设你的linu ...

  7. javascript 比量str今天的日期是,参数diff

    function isToday(str) { var d = new Date(str.replace(/-/g, "/")); var todaysDate = new Dat ...

  8. HDU 4430 &amp; ZOJ 3665 Yukari&#39;s Birthday(二分法+枚举)

    主题链接: HDU:pid=4430" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=4430 ...

  9. STM32F4xx时钟理解

    理解力STM32时钟是我们的应用定时器等的基础,据总结近期工作: 以下是一STM32时钟树: 1.首先注意的的是图中画绿色圈圈的两个,HSE和HSI分别表示外部时钟和内部时钟,当中HSE 是是快速外部 ...

  10. hdu4496 D-City(扭转和支票托收啊 )

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496 D-City Problem Description Luxer is a really bad ...