zoukankan      html  css  js  c++  java
  • 【LINUX】降级安装低版本GCC,G++

    由于要制作crosstool,需要用到gcc 4.1.2来编译,而Ubuntu 12.04下的gcc版本是gcc 4.6.3,高版本的gcc也不是好事啊。

    下面介绍gcc 4.1.2的编译安装方法:

    1. 下载并解压源码:
    wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2
    tar jxvf gcc-4.1.2.tar.bz2

    2. 安装依赖库及软件:
    sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo

    3. 声明编译时的include和lib路径:
    Ubuntu由于采用了多系统支持,include和lib路径有些不同,可以这样声明暂时解决编译gcc时找不到头文件和库的问题。
    export C_INCLUDE_PATH=/usr/include/i386-linux-gnu
    export CPLUS_INCLUDE_PATH=/usr/include/i386-linux-gnu
    export LIBRARY_PATH=/usr/lib/i386-linux-gnu

    4. 编译gcc:
    cd gcc-4.1.2
    mkdir build
    cd build
    ../configure --prefix=/opt/gcc-4.1.2 --program-suffix=-4.1 --libexecdir=/opt/gcc-4.1.2/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --enable-languages=c,c++

    make bootstrap
    然后是漫长的等待。。。

    5. 安装gcc:
    make install
    cd /opt/gcc-4.1.2/bin
    ls -al
    看到i686-pc-linux-gnu-gcc-4.1.2等文件就说明安装完成啦。

    6. 切换gcc 4.1.2:
    我一般喜欢在主目录下建立一个bin文件夹,而bin文件夹默认就在PATH中,然后在bin文件夹下链接gcc-4.1来切换gcc的不同版本。
    cd ~
    mkdir bin
    ln -s /opt/gcc-4.1.2/bin/gcc-4.1 gcc
    ln -s /opt/gcc-4.1.2/bin/g++-4.1 g++
    ln -s /opt/gcc-4.1.2/bin/cpp-4.1 cpp
    ln -s /opt/gcc-4.1.2/bin/gcov-4.1 gcov
    ln -s gcc cc
    ln -s g++ c++
    现在重新登录,输入gcc -v 或 cc -v就可以显示gcc已经变成4.1.2版本啦

    最近在了解分布式文件系统, 看到了淘宝自己的开源分布式文件系统 tfs, 因为他要求编译最好是使用 4.1.2 版本的 gcc 编译, 因此需要安装此版本的 gcc.
    其他少说, 直接开始安装吧:

    1. 下载&解压源码

    $ wget http://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2
    $ tar xvjf gcc-4.1.2.tar.bz2

    2. 安装依赖库, 以及软件

    $ sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo

    3. 为头文件以及所需库添加链接
    添加如下链接, 这取决于你的 Ubuntu 系统架构, 如果你使用的是64位的ubuntu系统应当使用x86_64-linux-gnu替代i386-linux-gnu

    $ cd /usr/include
    $ sudo ln -s i386-linux-gnu/bits bits
    $ sudo ln -s i386-linux-gnu/gnu gnu
    $ sudo ln -s i386-linux-gnu/sys sys
    $ sudo ln -s i386-linux-gnu/asm asm
    $ cd /usr/lib
    $ sudo ln -s i386-linux-gnu/crt1.o crt1.o
    $ sudo ln -s i386-linux-gnu/crti.o crti.o
    $ sudo ln -s i386-linux-gnu/crtn.o crtn.o 

    4. 编译gcc

    $ cd gcc-4.1.2
    $ mkdir build
    $ cd build
    $ ../configure --prefix=/usr/local --program-prefix=sse- --libexecdir=/usr/local/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --enable-languages=c,c++
    $ make bootstrap

    如果出现了如下错误:

    WARNING: `makeinfo’ is missing on your system. You should only need it
    if you modified a `.texi’ or `.texinfo’ file, or any other file
    indirectly affecting the aspect of the manual. The spurious
    call might also be the consequence of using a buggy `make’ (AIX,
    DU, IRIX). You might want to install the `Texinfo’ package or
    the `GNU make’ package. Grab either from any GNU archive site.

    请使用以下命令编译:

    $ make bootstrap MAKEINFO=makeinfo

    5. 安装gcc

    $ make install
    $ cd /usr/local/bin
    $ ll *gcc*

    看到类似以下几个文件, 安装就完成了

    i686-pc-linux-gnu-gcc-4.1.2 i686-pc-linux-gnu-ssegcc ssegcc ssegccbug

  • 相关阅读:
    OpenCV中的绘图函数
    整理不错的opencv博客
    opencv中的函数
    这是一个学习前端技术的网站
    HDU1520 Anniversary party(树形DP入门)
    CF1255C League of Leesins(图论)
    HDU4725 The Shortest Path in Nya Graph(最短路分层)
    1288C Two Arrays
    CF1294D MEX maxiszing
    CF1295C Obtain the String
  • 原文地址:https://www.cnblogs.com/helloWaston/p/4574414.html
Copyright © 2011-2022 走看看