linux应用之gcc编译器的安装及使用
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吧。
- 先将CentOS的ISO镜像文件,或者光碟放置在光驱处,然后将器作为第一控制器
- 用ROOT用户登录
- cd /media/CentOS_5.5_Final/CentOS 回车
- (我使用的是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编译器的安装及使用的更多相关文章
- Linux下GCC编译器的安装
通过apt-get方式下载的Qt5.9的gcc编译器版本只是4.8.3,无法打开一些Qt5的库头文件,所以准备在Llinux下再安装一个gcc5.3.0. 查看gcc版本 ubuntu下查看gcc的版 ...
- Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)
本来这个问题真的没必要写的,可是真的困扰我太久%>_<%,决定还是记录一下. 首先,最权威清晰的安装文档还是官方的: Building the NetCDF-4.2 and later F ...
- GCC编译器的安装
1.GCC简介 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC是Linux平台下最常用的编译器,GCC原名为GN ...
- Ubuntu16.04多个版本GCC编译器的安装和切换
这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本太高等问题,由此我打算安装其他老的版本给我的Ubuntu16.04.实验过程如下: 官网的教程是最牛逼的,先 ...
- Ubuntu16.04多个版本GCC编译器的安装和切换【转】
本文转载自:https://www.cnblogs.com/uestc-mm/p/7511063.html 这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本 ...
- linux下的gcc编译器
1. 编译单个文件成可执行文件 gcc hello.c 生成默认的可执行文件a.out 2. 编译单个文件为指定名字的可执行文件,使用-o选项指定文件名字 gcc -o test main.c 生成文 ...
- linux应用之gcc环境的安装
使用如下两个命令就可把gcc,gcc-c++统统安装 yum -y install gcc yum -y install gcc-c++ 但是用yum install gcc安装gcc编译环境,关于 ...
- linux下修改gcc编译器版本
可以使用如下命令行来让 gcc 选择不同的 C++ 版本: g++ -std=c++11 main.cpp 在你的系统中,由于编译器或是编译器设定上的差别,操作也许有所不同.
- Linux安装gcc编译器详解
本人使用的是CentOS 6.5 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 使用yum安装gcc 对于配备了yum的Linux发行版而言,安装gcc编 ...
随机推荐
- 天啦噜!原来Chrome自带的开发者工具还能这么用!
作者:余博伦链接:https://zhuanlan.zhihu.com/p/22665710来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Chrome自带开发者工具. ...
- Oracle SOA Suit Adapter
SOA架构的一个核心的使命是整合企业现存的各式各样的计算资源,它不仅仅是代码层面的整合,更是硬件,计算能力,服务能力的整合.Oracle SOA Suite在这方面做得特别的贴切,它提供了一组Adap ...
- Android 自定义录音、播放动画View,让你的录音浪起来
最近公司项目有一个录音的录制和播放动画需求,然后时间是那么紧,那么赶紧开撸. 先看效果图 嗯,然后大致就是这样,按住录音,然后有一个倒计时,最外层一个进度条,还有一个类似模拟声波的动画效果(其实中间的 ...
- C++精华笔记
牛客微信推送的C++笔记:2016-12-12 14:23:26 1.C++不仅支持面向对象,也可以像C一样支持面向过程. 2.OOP三大特性:封装 继承 多态 3.函数重载依据:函数类型and形 ...
- ZooKeeper 授权验证
ZooKeeper 授权验证 学习了:https://blog.csdn.net/liuyuehu/article/details/52121755 zookeeper可以进行认证授权:
- ios文件系统文件目录操作
对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox). 一个app发布到iPhone上后,目录结构如下: 1.其中获取 app root 可以用 NSHomeDi ...
- nightwatch.js - scroll until element is visible
.getLocationInView() Determine an element's location on the screen once it has been scrolled into vi ...
- 【每日Scrum】第四天(4.14) TD学生助手Sprint1站立会议
TD学生助手Sprint1站立会议(4.14) 任务看板 站立会议内容 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天早晨静姐调整了下界面和配色,下午和宝月兄一起做了GPS功能显示,暂时只能显示 ...
- kubernetes高级之创建只读文件系统以及只读asp.net core容器
系列目录 使用docker创建只读文件系统 容器化部署对应用的运维带来了极大的方便,同时也带来一些新的安全问题需要考虑.比如黑客入侵到容器内,对容器内的系统级别或者应用级别文件进行修改,会造成难以估量 ...
- Asp.net core 初探
写这篇博客的主要目的是加深自己的印象. 后续每天都会写一些自己的学习心得. Ubuntu :16.04 桌面版 .net core : dotnet-dev-1.0.0-preview2-003121 ...