zoukankan      html  css  js  c++  java
  • ubuntu13.04下gcc4.5.1的安装

    (1)去gcc官网下载源码包http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2

    (2)编译安装gcc之前需要先安装三个库,如果下面命令行不通,对应的都可以到官网下载:

      $wget ftp://ftp.dti.ad.jp/pub/lang/gcc/infrastructure/gmp-4.3.2.tar.bz2

      $wgetftp://ftp.dti.ad.jp/pub/lang/gcc/infrastructure/mpfr-2.4.2.tar.bz2
      $wget ftp://ftp.dti.ad.jp/pub/lang/gcc/infrastructure/mpc-0.8.1.tar.gz

      但是这种方法好像比较麻烦,mpfr依赖gmp的安装,mpc依赖前面两者的安装;

      接着运行./configure --prefix=/afs/ihep.ac.cn/soft/common/gcc/gcc --enable-threads=posix --disable-multlib --enable-languages=c,c++,java --with-gmp-lib=gmpInstallDir/lib --with-gmp-include=gmpInstallDir/include --with-mpfr-lib=mpfrInstallDir/lib --with-mpfr-include=mpfrInstallDir/include --with-mpc-lib=mpcInstallDir/lib --with-mpc-include=mpcInstallDir/include

    (3)所以我才用下面的方式通过apt-get install直接、分别进行安装:

      在编译安装mpfr时出现错误,通过如下方式解决:

      Availble mpfr version for 13.04 is 3.1.1-1. See packages.ubuntu.com for information.

      You can install it by :

     sudo apt-get install libmpfr-dev libmpfr-doc libmpfr4 libmpfr4-dbg
      期间它会自动安装libgmp-dev
      随后的mpc也是通过apt-get install libmpc-dev实现
      通过apt-get install 默认的安装路径:/usr/bin /usr/lib /usr/share /usr/share/man
      通过dpkg -L 软件名(如libgmp-dev)查看安装位置;
      这些库的include目录、lib目录默认已经添加进环境变量;因此在编译安装gcc时不需要在./configure中显示说明
    (4)进入gcc-4.5.1的目标目录,运行如下命令:(不是目标错误回报错https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28298中 Sebastian Forsman 2006-08-15 17:09:20 UTC 所说)
     ./configure --prefix=/afs/ihep.ac.cn/soft/common/gcc/gcc --enable-threads=posix --disable-multlib --enable-languages=c,c++,java
     即可
    (5)然后运行make、make check、make install命令
      在make的时候出现错误:
    /usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h:没有那个文件或目录
      通过如下方法解决:   1. 确定你的系统是x86_64 GNU/Linux     #uname -a 输出像:32 UTC 2008   x86_64 GNU/Linu     安装libc6-dev-i386:sudo apt-get install libc6-dev-i386
      2. 32位系统:sudo apt-get install libc6-dev
      3. 输入sudo apt-get install gcc-multilib 即可
    ../.././libgcc/../gcc/config/i386/linux-unwind.h:138:17: error: field ‘info’ has incomplete type
      通过打开linux-unwind.h,将138行由struct siginfo info;修改为siginfo_t info;
    /usr/bin/ld: cannot find crti.o: 没有那个文件或目录
    通过再网上找资料发现 export LIBRARY_PATH=/usr/lib/i386-linux-gnu中存在crti.o
    ./.libs/libgcj.so: undefined reference to `__cxa_call_unexpected”.
    To resolve, we need to modify the prims.cc file like below:--- libjava/prims.cc 2014-01-11 +++ libjava/prims.cc 2014-01-11 @@ -38,6 +38,14 @@ details. */
    ......... #endif

    #ifndef DISABLE_GETENV_PROPERTIES +#ifdef __GLIBC__ +#define __NO_CTYPE 1 +#endif #include <ctype.h> #include <java-props.h> #define PROCESS_GCJ_PROPERTIES process_gcj_properties()
    .........


    (6)后续配置
    查看原来的gcc所在的路径:which gcc

    export PATH="/usr/local/gcc-4.5.1/bin:$PATH"
    export LD_LIBRARY_PATH=/usr/local/gcc-4.5.1/lib:$LD_LIBRARY_PATH

    通过gcc -v查看版本

  • 相关阅读:
    js 类对象
    图片自动轮播及点击图标切换图片
    js 常用方法
    js-案例 国家-省市-区域之间的三级联动
    JS 基础知识之传智播客2
    JS 基础知识之传智播客1
    div居中
    formatDate 格式化日期 ,给小于10的月日,加0,如01 02 03
    Radiobutton改成文字样式
    如何在Android平台下进行Socket通信
  • 原文地址:https://www.cnblogs.com/ct1104/p/3758680.html
Copyright © 2011-2022 走看看