gcc是linux系统下功能十分强大的编译器。

本人使用的是CentOS 6.6 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.2(gcc 4.8开始全面支持C 11和C++ 11的新特性)。如果我们想要安装最新版本的gcc,那么就需要自行安装gcc。

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

下载gcc安装文件

在安装gcc当然要先拿到gcc的安装文件。在这里我们直接通过官方http://gcc.gnu.org/下载gcc-4.9.2.tar.bz2(86 MB)。当然,你也可以下载gcc-4.9.2.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.2.tar.bz2解压到/usr/local/src目录中(当然你也可以指定其他目录),完整的tar命令为:

#root账户下
,解压gcc安装文件
tar jxf gcc-4.9.2.tar.bz2 -C /usr/local/src

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

#转到gcc源程序根目录
cd /usr/local/src/gcc-4.9.2
#下载一些必备的依赖程序
./contrib/download_prerequisites

安装gcc需要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动下载这些软件并解压到当前目录(文件不大,总共只有几MB,请耐心等待下载)。

编译安装gcc

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

mkdir /usr/local/build/

mkdir /usr/local/build/gcc-4.9.2

#跳转到编译后的程序文件存放目录
cd /usr/local/build/gcc-4.9.2
#调用gcc源程序的configure(后面的参数选项可根据需要自行修改),用于配置gcc
/usr/local/src/gcc-4.9.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
#充分发挥CPU四核优势,启动四线程
make -j4
#编译gcc源程序,需要消耗比较长的时间
make
#安装gcc
make install

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

gcc -v

可以在终端查看gcc的版本,已经更新为V4.9.2.

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

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

闲话就不多说了,开始手动安装gcc吧。

  1. 先将CentOS的ISO镜像文件,或者光碟放置在光驱处,然后将器作为第一控制器
  2. 用ROOT用户登录
  3. cd /media/CentOS_5.5_Final/CentOS 回车
  4. (我使用的是CentOS_5.5,如果大家使用别的版本或者别的linux系统,就需要在ISO中找到向对应的RPM包,包的第一个名字都是一样的,只是后面跟着的版本号,也就是那些数字可能会有一些不同)要注意,安装的时候顺序不能错误,就按我如下的顺序进行安装:
    rpm -ivh cpp-4.1.2-48.el5.i386.rpm 回车
    rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm 回车
    rpm -ivh glibc-headers-2.5-49.el5.i386.rpm 回车
    rpm -ivh glibc-devel-2.5-49.el5.i386.rpm 回车
    rpm -ivh libgomp-4.4.0-6.el5.i386.rpm 回车
    rpm -ivh gcc-4.1.2-48.el5.i386.rpm 回车

安装完成,可以使用gcc -v查看自己的版本号,就说明安装成功了。本人亲测,这个是最成功的最完整的手动安装gcc的方法。

linux应用之gcc编译器的安装及使用的更多相关文章

  1. Linux下GCC编译器的安装

    通过apt-get方式下载的Qt5.9的gcc编译器版本只是4.8.3,无法打开一些Qt5的库头文件,所以准备在Llinux下再安装一个gcc5.3.0. 查看gcc版本 ubuntu下查看gcc的版 ...

  2. Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)

    本来这个问题真的没必要写的,可是真的困扰我太久%>_<%,决定还是记录一下. 首先,最权威清晰的安装文档还是官方的: Building the NetCDF-4.2 and later F ...

  3. GCC编译器的安装

    1.GCC简介 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC是Linux平台下最常用的编译器,GCC原名为GN ...

  4. Ubuntu16.04多个版本GCC编译器的安装和切换

    这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本太高等问题,由此我打算安装其他老的版本给我的Ubuntu16.04.实验过程如下: 官网的教程是最牛逼的,先 ...

  5. Ubuntu16.04多个版本GCC编译器的安装和切换【转】

    本文转载自:https://www.cnblogs.com/uestc-mm/p/7511063.html 这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本 ...

  6. linux下的gcc编译器

    1. 编译单个文件成可执行文件 gcc hello.c 生成默认的可执行文件a.out 2. 编译单个文件为指定名字的可执行文件,使用-o选项指定文件名字 gcc -o test main.c 生成文 ...

  7. linux应用之gcc环境的安装

    使用如下两个命令就可把gcc,gcc-c++统统安装 yum -y install gcc yum -y install gcc-c++ 但是用yum install gcc安装gcc编译环境,关于 ...

  8. linux下修改gcc编译器版本

    可以使用如下命令行来让 gcc 选择不同的 C++ 版本: g++ -std=c++11 main.cpp 在你的系统中,由于编译器或是编译器设定上的差别,操作也许有所不同.    

  9. Linux安装gcc编译器详解

    本人使用的是CentOS 6.5 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 使用yum安装gcc 对于配备了yum的Linux发行版而言,安装gcc编 ...

随机推荐

  1. 天啦噜!原来Chrome自带的开发者工具还能这么用!

    作者:余博伦链接:https://zhuanlan.zhihu.com/p/22665710来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Chrome自带开发者工具. ...

  2. Oracle SOA Suit Adapter

    SOA架构的一个核心的使命是整合企业现存的各式各样的计算资源,它不仅仅是代码层面的整合,更是硬件,计算能力,服务能力的整合.Oracle SOA Suite在这方面做得特别的贴切,它提供了一组Adap ...

  3. Android 自定义录音、播放动画View,让你的录音浪起来

    最近公司项目有一个录音的录制和播放动画需求,然后时间是那么紧,那么赶紧开撸. 先看效果图 嗯,然后大致就是这样,按住录音,然后有一个倒计时,最外层一个进度条,还有一个类似模拟声波的动画效果(其实中间的 ...

  4. C++精华笔记

    牛客微信推送的C++笔记:2016-12-12   14:23:26 1.C++不仅支持面向对象,也可以像C一样支持面向过程. 2.OOP三大特性:封装 继承 多态 3.函数重载依据:函数类型and形 ...

  5. ZooKeeper 授权验证

    ZooKeeper 授权验证 学习了:https://blog.csdn.net/liuyuehu/article/details/52121755 zookeeper可以进行认证授权:

  6. ios文件系统文件目录操作

    对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox). 一个app发布到iPhone上后,目录结构如下: 1.其中获取 app root 可以用 NSHomeDi ...

  7. nightwatch.js - scroll until element is visible

    .getLocationInView() Determine an element's location on the screen once it has been scrolled into vi ...

  8. 【每日Scrum】第四天(4.14) TD学生助手Sprint1站立会议

    TD学生助手Sprint1站立会议(4.14) 任务看板 站立会议内容 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天早晨静姐调整了下界面和配色,下午和宝月兄一起做了GPS功能显示,暂时只能显示 ...

  9. kubernetes高级之创建只读文件系统以及只读asp.net core容器

    系列目录 使用docker创建只读文件系统 容器化部署对应用的运维带来了极大的方便,同时也带来一些新的安全问题需要考虑.比如黑客入侵到容器内,对容器内的系统级别或者应用级别文件进行修改,会造成难以估量 ...

  10. Asp.net core 初探

    写这篇博客的主要目的是加深自己的印象. 后续每天都会写一些自己的学习心得. Ubuntu :16.04 桌面版 .net core : dotnet-dev-1.0.0-preview2-003121 ...