gcc 安装详解 之六

来源:互联网 发布:zepto.js 文件上传 编辑:程序博客网 时间:2024/06/05 01:40

                对于刚接触linux的人来说安装gcc真不是那么简单的事,尤其是对configure命令不熟悉的那更是一个惨,

      以前也有安装顺利的时候,只要 configure、 make、 make install 一切顺利,不顺利的时候,报错:少这个少那个

      真是头疼的厉害。下面是我在redhat5.5 下碰到的一些问题。在这给那些安装gcc遇到麻烦的同学一点启发。

     安装环境  gcc-4.7.0.tar.bz2 、redhat5.5 。

1、在http://gcc.gnu.org网上下载gcc压缩包。

2、解压gcc压缩包:

           1)我把压缩包放到  /usr/local/src  文件下 

           2)解压  bzcat gcc-4.7.0.tar.bz2 | tar xvf - (如下载的是别的类型的压缩包,那就更换压缩命令解压就ok这个都懂的)

           3)在src下多了个gcc-4.7.0文件夹(这是源文件)

           4)创建安装路径  mkdir  /usr/local/gcc (这是个临时目录,用于临时存放编译文件的目录 )

           5)创建安装路径  mkdir  /usr/local/gcc-4.7.0 (这个是目标目录,将会把gcc 安装到该目录中)

           6)切换到 安装目录下 cd  /usr/local/gcc

           7)  configure  进行软件与系统配置(这个是关键,问题基本都出在这里面,如实在解决不了请 认真查阅configure命令)

                 ../gcc-4.7.0/configure --prefix=/usr/local/gcc  --enable-threads=posix --disable-checking --enable--long-long
                 --host=i386-redhat-linux--with-system-zlib --enable-languages=c,c++,java

               》warning:If you wanted to set the --build type, don't use --host

                         出现该警告 干脆直接不要 --host=i386-redhat-linux 设置了 让其默认   

               》error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

                这说明你电脑少环境  gmp 、mpfr 、mpc  如没出现该错误 恭喜你可以跳过该问题

                 在这介绍   gmp 、mpfr 、mpc  的安装

                gmp 下载地址  ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2下载gmp-5.0.1.tar.bz2

                mpc 下载地址   http://www.multiprecision.org/mpc

                mpfr 下载地址  http://ftp.gnu.org/gnu/mpfr/

                安装顺序  先安装 gmp 在安装mpfr 再安装mpc     这三个文件版本是有关联 的 例如 mpc 0.9 与1.0.1 版本都要求mpfr 版本在2.4.2

                以上,在安装的时候注意点,万一版本不符合,根据提示下载相应的版本。

                 解压 gmp:  tar jxvf   gmp-5.0.1.tar.bz2   得到gmp-5.0.1 文件 ,在该文件的同级目录下创建一个临时的编译文件temp

                 # cd temp 文件中中或者直接打开该文件夹 在该文件夹中打开终端  执行下面命令行

            #../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1

                 #make

                 # sudo make install

                 这是gmp安装完成 ----------------------------------------------------------------------------------------------------------------------------

                  在gmp-5.0.1 文件夹同级目录下 解压 mpfr:  tar jxvf   mpfr-2.4.2.tar.bz2 得到mpfr-2.4.0文件夹,再次切进到temp目录 执行
                   #../mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-5.0.1

                   # make

                   # sudo make install

                  这mpfr 安装完成--------------------------------------------------------------------------------------------------------------------------------

                  在gmp-5.0.1 文件夹同级目录下 解压 mpc: tar zxvf  mpc-0.9.tar.gz 得到mpfr-2.4.0文件夹,再次切进到temp目录 执行
                  #../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-2.4.2

                  # make

                  # sudo make install

                 这mpc安装完成-------------------------------------------------------------------------------------------------------------------------------- 

                 导入环境变量 # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib

               8)在先前第4部创建的文件夹中打开终端 #../src/gcc-4.7.0/configure --prefix=/usr/local/gcc-4.7.0 --enable-threads=posix --disable-checking --disable-multilib
                  --enable-languages=c,c++ --with- gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.9

               9)#make   这里时间有点长 慢慢等(苦命啊 希望别在报错了 如报错 是以下错误 那你幸运了 )

                    》error:

              “checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile

               See `config.log' for more details.

              make[2]: *** [configure-stage1-target-libgcc] Error 1

              make[2]: Leaving directory `/tmp/gcc

              make[1]: *** [stage1-bubble] Error 2

              make[1]: Leaving directory `/tmp/gcc

              make: *** [bootstrap] Error 2

                    具体报错原因我也不说了 直接看怎么解决

                    在导入 一次 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib

                    》》 Configure:current value: -g  -O2 ”形式,

                          就是先前的值和现在的不一样。这是由于缓存的问题需要把缓存文件产出重新编译

              10)#make install    ok 完成安装

              11)配置         

               GCC 4.7.0的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在 lib下、头文件在include下等。由
             于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。

                把安装目录的bin放在环境变量PATH中。网上有种 用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。

               首先,查看原来的gcc所在的路径:

             # which gcc

              在我的系统上,上述命令显示:/usr/bin/gcc。因此,原来的gcc命令在/usr/bin目录下。我们可以把GCC 4.7.0中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符
             号连接:

            # cd /usr/bin

           # ln -s /usr/local/gcc-4.7.0/bin/gcc gcc470

           # ln -s /usr/local/gcc-4.7.0/bin/g++ g++470

           # ln -s /usr/local/gcc-4.7.0/bin/gcj gcj470

          这样,就可以分别使用gcc470、g++470、gcj470来调用GCC 4.1.2的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。

           同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。

            将/usr/local/gcc-4.7.0}/lib路径添加到环境变量LD_LIBRARY_PATH中,

           例如,如果GCC 4.7.0安装在/usr/local/gcc-4.7.0目录下,在RH Linux下可以直接在命令行上执行
          # export LD_LIBRARY_PATH=/usr/local/gcc-4.7.0/lib

           最好添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了,在文件$HOME/.bash_profile中添加下面两句:

           LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib:$LD_LIBRARY_PATH

          export LD_LIBRARY_PATH

          重启系统设置生效,或者执行命令

         # source $HOME/.bash_profile


原创粉丝点击