CentOS 升级GCC相关教程

by admin on 2020年1月18日

首先我得说一个跟gcc没任何关系,但却是每个cygwin使用者必须知道的东西,那就是rebaseall。
这个跟cygwin在windows上模拟出unix的fork函数的实现有关。在cygwin中安装了新包,或者更新了旧包,都可能导致fork发生问题,而fork在unix血统的程序中又是那么地常用。
一旦出了什么你觉得不该出的问题,在尝试解决之前,首先rebaseall一下,很有可能rebaseall之后一切就正常了。
如何rebaseall呢?
关闭所有的cygwin程序
然后Win+R
输入f:cygwinbinash.exe回车 (我的cygwin装在了F盘)
然后输入/bin/rebaseall
好啦,这就rebaseall完了。

CentOS 升级GCC相关教程

本文转载自:

最近由于需求的原因,需要把目前gcc-4.4.4升级到gcc-4.6.1,考虑到有多台的原因,做了一个脚本自动安装结合批量工具分发。

一、安装环境
系统版本:centos6.0X64
原GCC版本:gcc-4.4.4
新GCC版本:gcc-4.6.1

二、正式安装
1、下载安装的源码:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 1澳门新葡亰信誉平台游戏 2

  1. 如下需要下载以下包:
  2. gcc-4.6.1.tar.bz2gmp-4.3.2.tar.bz2mpc-0.8.1.tar.gzmpfr-2.4.2.tar.bz2
  3. 下载地址如下:
  4. 澳门新葡亰信誉平台游戏 ,wgetftp://gcc.gnu.org/pub/gcc/infrastructure/{gmp-4.3.2.tar.bz2,mpc-0.8.1.tar.gz,mpfr-2.4.2.tar.bz2}
  5. wget
  6. 即可!

2、解压安装:安装有先后顺序:GMP、MPFR、MPC、GCC

1.安装GMP:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 3澳门新葡亰信誉平台游戏 4

  1. tarjxfgmp-4.3.2.tar.bz2&&cdgmp-4.3.2/;./configure–prefix=/usr/local/gmp/&&make&&makeinstall

2.安装MPFR:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 5澳门新葡亰信誉平台游戏 6

  1. tarjxfmpfr-2.4.2.tar.bz2;cdmpfr-2.4.2/;./configure–prefix=/usr/local/mpfr–with-gmp=/usr/local/gmp&&make&&makeinstall

3.安装MPC:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 7澳门新葡亰信誉平台游戏 8

  1. tarxzfmpc-0.8.1.tar.gz;cdmpc-0.8.1;./configure–prefix=/usr/local/mpc–with-mpfr=/usr/local/mpfr–with-gmp=/usr/local/gmp&&make&&makeinstall

然后执行如下:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 9澳门新葡亰信誉平台游戏 10

  1. exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/</span>

//这一步很关键,设置变量,不设置后面会报错。

4.安装GCC:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 11澳门新葡亰信誉平台游戏 12

  1. tarjxfgcc-4.6.1.tar.bz2;cdgcc-4.6.1;./configure–prefix=/usr/local/gcc–enable-threads=posix–disable-checking–disable-multilib–enable-languages=c,c++–with-gmp=/usr/local/gmp–with-mpfr=/usr/local/mpfr/–with-mpc=/usr/local/mpc/&&make&&makeinstall

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 13澳门新葡亰信誉平台游戏 14

  1. 安装完毕即可!然后做一个链接就可以使用GCC了
  2. mkdir-p/data/backup/`date+%Y%m%d`
  3. mv/usr/bin/{gcc,g++}/data/backup/`date+%Y%m%d`
    1. 新建软链接:
  4. ln-s/usr/local/gcc/bin/gcc/usr/bin/gcc
  5. ln-s/usr/local/gcc/bin/g++/usr/bin/g++

三、测试GCC
直接输入gcc -v 可以查看到gcc
版本为4.6.1和相关的编译参数就ok了!附上一个最简单的安装脚本:

[plain]view
plaincopyprint?澳门新葡亰信誉平台游戏 15澳门新葡亰信誉平台游戏 16

  1. #!/bin/sh
  2. ##automakeinstallgcc
  3. ##2012-07-03
  4. tarjxfgmp-4.3.2.tar.bz2&&cdgmp-4.3.2/;./configure–prefix=/usr/local/gmp/&&make&&makeinstall
    1. sleep1
  5. cd../;tarjxfmpfr-2.4.2.tar.bz2;cdmpfr-2.4.2/;./configure–prefix=/usr/local/mpfr–with-gmp=/usr/local/gmp&&make&&makeinstall
    1. cd../;tarxzfmpc-0.8.1.tar.gz;cdmpc-0.8.1;./configure–prefix=/usr/local/mpc–with-mpfr=/usr/local/mpfr–with-gmp=/usr/local/gmp&&make&&makeinstall
    1. cd../;tarjxfgcc-4.6.1.tar.bz2;cdgcc-4.6.1;./configure–prefix=/usr/local/gcc–enable-threads=posix–disable-checking–disable-multilib–enable-languages=c,c++–with-gmp=/usr/local/gmp–with-mpfr=/usr/local/mpfr/–with-mpc=/usr/local/mpc/
    1. if
  6. [$?-eq0];then
  7. echo“Thisgccconfigureissuccess”
  8. else
  9. echo“Thisgccconfigureisfailed”
  10. fi
  11. exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/
    1. make&&makeinstall
    1. [$?-eq0]&&echoThisismakeinstallsuccess

////————————————————————————————————————————————————————–

configure: error: cannot compute suffix of object files: cannot compile

Indeed, adding the MPFR and GPM lib directories to LD_LIBRARY_PATH
solves theproblem. For some reason I thought configure would handle this
for me since Igave it –with-gmp and –with-mpfr settings. Would have
been nice if configuretested for this and given a helpful error. In any
event I’ll close this out asan invalid bug report.

需要安装gmp与mpfr并且需要在.bash_profile(一般在/root目录下)配置LD_LIBRARY_PATH,把GMP与MPFR对应的lib配置上如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpfr/2.4.0/lib:/usr/local/gmp/4.2.2/lib
export LD_LIBRARY_PATH一定要重启生效或者使用 source
/root/.bash_profile

error while loading shared libraries: libXXX.so.X: cannot open shared
object file: No such file

1、找到libXXX.so.X的路径,比如/usr/local/xxx/lib

2、cd /etc

3、gedit ld.so.conf

4、添加/usr/local/xxx/lib

5、ldconfig

升级GCC相关教程
本文转载自:
最近由于需求的原因,需要把目前gcc-4.4.4升级到gcc-4.6.1,考…

【转载】转载时请以超链接形式标明文章原始出处和作者信息及本声明

一定记住了。

为了装gcc 4.7.2,得先装三个gcc所依赖的库,它们分别是:gmp, mprf, mpc
由于这三个库之间也有依赖关系,所以你得按我列出来的顺序依次安装

可于以下这些地方下载这三个库的源码包:
                 (我下的是gmp-5.0.5.tar.bz2)
                     (我下的是mpfr-3.1.1.tar.bz2)
            (我下的是mpc-1.0.1.tar.gz)

下载下来后用tar -xf解开

修改~/.bash_profile,加入以下三行
export LD_LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH=/usr/local/lib
export CPATH=/usr/local/include
重启cygwin,让这三行生效。

编译gmp:
./configure –disable-static –enable-shared
make
make install

编译mpfr:
./configure –disable-static –enable-shared
make
make install

编译mpc:
./configure
make
make install

编译gcc 4.7.2
mkdir gcc-4.7.2-objdir
cd gcc-4.7.2-objdir
../gcc-4.7.2/configure  –prefix=/usr/local/gcc-4.7.2 
–enable-languages=c,c++  –disable-bootstrap
make
make install

最后编辑.bash_profile,将gcc
4.7.2的可执行文件所在目录加入PATH环境变量
PATH=”/usr/local/gcc-4.7.2/bin:$PATH”

参考:

周末折腾了一下午加一夜,终于弄明白了!失败的原因是网上着的帖子很多都是互相复制,其中因为每个人的设置路径之类的不一样,作者复制时没有注意,因此记录如下,关键位置尽量解释清楚。

首先要明白先后次序,m4—>gmp—>mpfr—>mpc

1、准备工作(此部分是安装三个库的先决条件) :

先安装m4,输入 sudo aptitude install build-essential
m4 ,此时有可能提示没安装aptitude,如果没有,根据提示,输入 sudo apt-get
install aptitude 就OK

2、安装gmp、mpfr和mpc,都可以在 ftp://gcc.gnu.org/pub/gcc/infrastructure/ 中下载,我这里分别下载gmp4.3.2,mpfr2.4.2和mpc0.8.1, 之后切换到root用户(sudo
-i) ,此为以下步骤的前提!

在 /usr/local/下分别建立三个文件夹

    cd /usr/local/

    mkdir gmp432

    mkdir mpfr242

    mkdir mpc081

(1)安装gmp,可以提前 把下载的三个库的压缩包分别放到相应的文件夹下

    cd
gmp432                        *这个文件夹可理解为是将gmp安装在这里 

    bunzip2 gmp-4.3.2.tar.bz2

    tar xf gmp-4.3.2.tar          
*生成gmp-4.3.2文件夹(这个文件夹可理解为是安装文件所在的目录) 

    cd gmp-4.3.2

    ./configure –prefix=/usr/local/gmp432

*–prefix选项代表要将该库安装在哪里,我装在/usr/local/gmp432目录下,后面的安装都会用到这个选项。

    make                       *如果出错,重新configure的话,先make
distclean清除make信息后再重新configure 

    make
check              * 在编译的时候,最后没提示什么错误再往下进行, 建议每一次make之后都运行这个命令

    make install             
*装好后/usr/local/gmp432/目录下有三个文件夹

    make clean 

(2)安装mpfr,

    cd mpfr242 

    cd mpfr-2.4.2

    ./configure –prefix=/usr/local/mpfr242 –with-gmp=/usr/local/gmp432

*注意这个地方的路径匹配,gmp安装在哪这个地方就要写哪,因为是依存关系!建议统一安装在gmp432、

  mpfr242、mpc081这三个地方

    make 

    make check

    make install

(3)安装mpc,

    cd mpc081 

    cd mpc-0.8.1

    ./configure –prefix=/usr/local/mpc081 –with-gmp=/usr/local/gmp432
–with-mpfr=/usr/local/mpfr242

*同上,注意路径!!!

    make 

    make check

    make install

3、安装gcc-4.4.5

在/usr/local/下新建gcc445文件夹,之后在 上下载gcc压缩包,放在/usr/local/gcc445下,解压缩后

    cd gcc-4.4.5

    ./configure –prefix=/usr/local/gcc445 –enable-threads=posix
–disable-checking –disable-multilib –enable-languages=c,c++
–with-gmp=/usr/local/gmp432 –with-mpfr=/usr/local/mpfr242
–with-mpc=/usr/local/mpc081

*其他帖子是建立个临时文件夹,上面的语句开头有些细微差别,这个是我自己悟出来的,也可以参考

   按照他的方法,但是要

  注意路径。

为保险起见,需要在环境变量LD_LIBRARY_PATH添加前面三个库的位置,键入以下命令:

    export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc081/lib:/usr/local/gmp432/lib:/usr/local/mpfr242/lib                                    
*注意路径!

    make                                                  
*注意检查有没有错误,过程很慢,1-2个小时! 

    make check                                         
*如果make没有问题,这一步可以省略,因为时间很久

    make install

保留旧版的gcc,建立符号链接

    cd /usr/bin

    ln -s /usr/local/gcc445/bin/gcc gcc44

    ln -s /usr/local/gcc445/bin/g++ g44++

最后,在/etc/bashrc中(有帖子说是在/etc/profile中,这个我不确定)增加下面两行代码:

    LD_LIBRARY_PATH=:/usr/local/mpc081/lib:/usr/local/gmp432/lib:/usr/local/mpfr242/lib:/usr/local/gcc445/lib

    export LD_LIBRARY_PATH

保存重启系统后,就可以使用新装的gcc了,enjoy!

最后看到一个帖子提到以上命令可以写个shell文件,installgcc.sh,批处理执行,great
idea!记下网址,有空可以试试:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图