• Linux安装gcc编译器详解


    本人使用的是CentOS 6.5 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器。

    使用yum安装gcc

    对于配备了yum的Linux发行版而言,安装gcc编译器就变得so easy。我们只需要分别执行如下命令即可:

    #安装gcc、c++编译器以及内核文件
    yum -y install gcc gcc-c++ kernel-devel

    自行安装gcc

    不过使用yum安装的gcc并非当前的最新版本,目前gcc的最新版本为4.9.0(gcc 4.8开始全面支持C 11和C++ 11的新特性)。如果我们想要安装最新版本的gcc,那么就需要自行安装gcc。

    笔者初次安装gcc时,在网络上搜寻了大量的gcc安装配置教程,许多教程的内容非常之多,结果把自己搞晕了,编译安装的时候还老是出现各种错误。最后查阅官方文档才发现,自行安装新版本的gcc并不复杂,根本没有那些教程中说的那样繁琐(有些教程居然还要修改几个配置文件)。

    下载gcc安装文件

    在安装gcc当然要先拿到gcc的安装文件。在这里我们直接通过官方下载gcc-4.9.0.tar.bz2(86 MB)。当然,你也可以下载gcc-4.9.0.tar.gz(110 MB),不过该压缩文件要大出不少。

    编译前的准备工作

    想要安装gcc 4.8及以上版本,你需要先安装C标准库和头文件,以及旧版本的c++编译器。如果你的计算机中没有这些,请执行以下命令(当然你也可以使用apt-get等其它方式进行安装,如果已经安装则无需再次安装):

    #安装C和C++的静态库
    yum install -y glibc-static libstdc++-static
    #安装旧版本的gcc、c++编译器
    yum install gcc gcc-c++

    在这里,我们将gcc-4.9.0.tar.bz2解压到/usr/local/src目录中(当然你也可以指定其他目录),完整的tar命令为:

    #解压gcc安装文件
    tar jxf gcc-4.9.0.tar.bz2 -C /usr/local/src

    解压后gcc源程序的根目录就是/usr/local/src/gcc-4.9.0。接着,我们依次执行如下命令:

    #转到gcc源程序根目录
    cd /usr/local/src/gcc-4.9.0
    #下载一些必备的依赖程序
    ./contrib/download_prerequisites
    安装gcc需要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动下载这些软件并解压到当前目录(文件不大,总共只有几MB,请耐心等待下载)。

    编译安装gcc

    接着,就可以对gcc进行编译安装了。在此之前,我们先创建一个目录/usr/local/build/gcc-4.9.0(你也可以自行指定其他目录)用于存放编译后的程序文件。然后我们依次执行如下命令:

    #跳转到编译后的程序文件存放目录
    cd /usr/local/build/gcc-4.9.0
    #调用gcc源程序的configure(后面的参数选项可根据需要自行修改),用于配置gcc
    /usr/local/src/gcc-4.9.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    #编译gcc源程序
    make
    #安装gcc
    make install

    其中执行make命令这一过程耗费的时间可能非常多,笔者这里耗费了20多分钟才编译完成。执行完上述命令后,我们的gcc就已经安装成功了。

    与其他教程不同的是,本教程并没有对gmp、mpfr、mpc等软件分别进行解压和编译,而是直接由download_prerequisites负责下载并解压,最后和gcc一起进行编译安装,这也是官方推荐的做法(download_prerequisites还会根据实际情况决定是否启用Graphite循环优化)。

    如果你的Linux无法直接联网,那么你只能打开文件download_prerequisites,获取到这些文件的下载链接,然后通过其他上网设备下载这些软件。最后把这些软件直接解压到gcc源程序目录(/usr/local/src/gcc-4.9.0)下即可。

    作者:软件指南针(http://www.softown.cn),转载请保留出处!

  • 相关阅读:
    java读取ldif文件并创建新的节点
    AngularJS的基本概念和用法
    前端开发环境需要的工具
    解决:使用ajax验证登录信息返回前端页面时,当前整个页面刷新。
    js中switch语句不执行
    使用html5中required属性
    H-ui.admin v3.1学习之路(一):导航栏信息无法在内容区显示
    解决:@Auarowired为null
    scrapy框架整理
    django项目的部署
  • 原文地址:https://www.cnblogs.com/yadongliang/p/6100087.html
Copyright © 2020-2023  润新知