gcc 4.8安装
suse的安装参考:http://blog.csdn.net/cloudskyfhx/article/details/17660607 有些错误处理见本文黄色部分
CentOS 6.4 编译安装 gcc 4.8.1
转自:https://www.cnblogs.com/codemood/archive/2013/06/01/3113200.html
今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋。终于有一个全面支持C++11语言特性的编译器了!
当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以去尝试各种特性了。另外,之前也有消息说Clang功能上也100%支持C++11了,但是内部还在做测试,Clang3.3的release版据说6月5号正式发布,最近对于C++来说大事真多啊,很期待!
今天下午看到这个消息,晚上就实在忍不住了,赶紧把最新的gcc下载下来编译安装起来,下面介绍下安装步骤:
安装之前,还是提醒下大家:一些基本的准备工作我就不说了,比如得装个Linux(CentOS,Ubuntu等等),然后装上基本的编译环境,用较老的编译环境编译新的编译器,这叫自举(bootstrap)。如果编译的过程,提示出错,就按照提示去把环境装好,不再详细说明。
1、下载gcc 4.8.1源码包:
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2
我是虚拟机里面装的Linux,我嫌wget太慢,所以自己在Windows上用迅雷下好,然后共享到Linux中。
2、解压:
tar -jxvf gcc-4.8.1.tar.bz2
3、下载编译所需的依赖包:
这个步骤有两种方式完成:
a) 如果Linux有网络连接,直接这样:
cd gcc-4.8.1
./contrib/download_prerequisites
cd ..
b) 如果Linux没有网络连接(我主机和虚拟机是Host-only,不能联网,所以另外想办法),则用Windows上网下载这几个包:
ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
有人问,一定要下载几个版本吗?下载最新的版本行不行?我没试过,也不知道,我是按照gcc-4.8.1/contrib/download_prerequisites脚本里面的版本下载的。既然里面已经说了这几个版本,那我就严格按照它的要求来做。
然后解压并移动到gcc-4.8.1下面:
tar -xjf gmp-4.3.2.tar.bz2
tar -xjf mpfr-2.4.2.tar.bz2
tar -xzf mpc-0.8.1.tar.gz
mv gmp-4.3.2 gcc-4.8.1/gmp
mv mpfr-2.4.2 gcc-4.8.1/mpfr
mv mpc-0.8.1 gcc-4.8.1/mpc
这样的做法好处是,不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译(事实上这也是gcc-4.8.1/contrib/download_prerequisites脚本的做法,个人感觉更简洁些)。
注意:我的是suse linux sp3,使用上面的方法会报错,我是直接下载gmp、mpfr、mpc,然后cd 各个目录,./configure, make && make install来安装的。注意:configure没有使用任何参数。
4、新建目录用于存放编译结果:
mkdir gcc-build-4.8.1
5、进入新目录,并执行configure命令,产生makefile:
cd gcc-build-4.8.1
../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
具体选项不多解释,大家可以自己查看,我只用到c和c++,所以只编译这两种语言的编译器。
6、编译:
make -j4
我是i5四核,所以开4个线程同时编译,要是有8核就更爽了~我在虚拟机里面花了30分钟不到的时间,不算太慢了。
我安装时遇到的错误:
error: cannot compute suffix of object files: cannot compile
解决办法:
因为我的gmp, mpfr, mpc都是使用默认参数安装的,没指定任何参数
./configure
make
make install
所以直接使用下面的命令设置环境变量就可以了:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
如果安装时指定了安装目录,使用类似下面的命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gcc-4.6.3/mpc-0.9/mpc_install/lib:/opt/gcc-4.6.3/gmp-5.0.4/gmp_install/lib:/opt/gc
我的解决方法是:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
因为我看到gmp、mpfr、mpc都在/usr/local/lib下面:
s /usr/local/lib
gcc libgmp.a libgmp.la libgmp.so libgmp.so.10 libgmp.so.10.1.3 libmpc.a libmpc.la libmpc.so libmpc.so.3 libmpc.so.3.0.0 libmpfr.a libmpfr.la libmpfr.so libmpfr.so.4 libmpfr.so.4.1.2
此外:
编译时的错误处理。
configure: error: C++ compiler missing or inoperational
make[2]: \*** [configure-stage1-libcpp] Error 1
make[2]: Leaving directory `/home/liukk/gcc-4.8.1'
make[1]: \*** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/liukk/gcc-4.8.1'
make: \*** [all] Error 2
解决办法:
安装如下内容:
zypper install gcc-c++
7、安装:
sudo make install
8、大功告成,检查版本:
g++ --version
g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
【参考文章】:
http://rritw.com/a/caozuoxitong/OS/20130407/335815.html
http://www.lainme.com/doku.php/blog/2012/06/%E5%9C%A8centos_5%E4%B8%8A%E7%BC%96%E8%AF%91gcc_4.7
http://www.cnblogs.com/chuncn/archive/2010/10/15/1851853.html
gcc 4.8安装的更多相关文章
- linux应用之gcc编译器的安装及使用
gcc是linux系统下功能十分强大的编译器. 本人使用的是CentOS 6.6 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 使用yum安装gcc 对于 ...
- Centos 6.5升级gcc : 源码安装 + rpm安装
1. 前言 采用Centos 6.5默认的gcc版本为4.4.7,不支持c++ 11,需要升级: 首先想到用yum命令:执行yum update gcc-c++或yum update g++ 显示没有 ...
- GCC编译器的安装
1.GCC简介 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC是Linux平台下最常用的编译器,GCC原名为GN ...
- nginx报错:./configure: error: C compiler cc is not found, gcc 是已经安装了的
源码安装nginx报错,找不到gcc,但是实际上gcc是存在的,如下: # ./configure checking for OS + Linux -.el7.x86_64 x86_64 checki ...
- Ubuntu16.04多个版本GCC编译器的安装和切换
这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本太高等问题,由此我打算安装其他老的版本给我的Ubuntu16.04.实验过程如下: 官网的教程是最牛逼的,先 ...
- linux应用之gcc环境的安装
使用如下两个命令就可把gcc,gcc-c++统统安装 yum -y install gcc yum -y install gcc-c++ 但是用yum install gcc安装gcc编译环境,关于 ...
- Ubuntu16.04多个版本GCC编译器的安装和切换【转】
本文转载自:https://www.cnblogs.com/uestc-mm/p/7511063.html 这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本 ...
- suse-12-linux gcc gcc-c++离线安装教程,不使用yum等
最近这几天接手新的项目,要部署新的服务器,采用目前比较主流的框架开发的程序,前后端进行了分离.在这种情况下就需要使用nginx做代理,以便于很好的区分前后端,目前虽然已经有很多很好的发布体系,但是个人 ...
- Linux下GCC编译器的安装
通过apt-get方式下载的Qt5.9的gcc编译器版本只是4.8.3,无法打开一些Qt5的库头文件,所以准备在Llinux下再安装一个gcc5.3.0. 查看gcc版本 ubuntu下查看gcc的版 ...
随机推荐
- iOS网络——NSURLCache设置网络请求缓存
今天在看HTTP协议,看到了response头中的cache-control,于是就深入的研究了一下.发现了iOS中一个一直被我忽略的类——NSURLCache类. NSURLCache NSURLC ...
- phpmyadmin搭建
phpadmin配置: 一.phpadmin安装及配置 1.解压phpadmin压缩包,并复制到 /usr/local/apache2/htdocs目录,重命名为dataManage 2.进入data ...
- dubbo之回声测试
回声测试 回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控. 所有服务自动实现 EchoService 接口,只需将任意服务引用强制转型为 EchoSe ...
- Linux基础:find命令总结
本文只总结一些常用的用法,更详细的说明见man find和 info find. find命令 find命令常用来查找文件或目录,可以根据给定的路径和表达式查找所需的文件或目录.该工具是由findut ...
- 【JavaScript游戏开发】使用HTML5 canvas开发的网页版中国象棋项目
//V1.0 : 实现棋子的布局,画布及游戏场景的初始化 //V2.0 : 实现棋子的颜色改变 //V3.0 :实现所有象棋的走棋规则 //V4.0 : 实现所有棋子的吃子功能 完整的项目源码已经开源 ...
- 最佳实践 | 源码升级gcc
1.下载升级包所需软件 boost_1_60_0.tar.gz http://www.boost.org/users/history/version_1_60_0.html gcc-4.8.0.tar ...
- webpack 配置 Vue 多页应用 —— 从入门到放弃
webpack 配置 Vue 多页应用 -- 从入门到放弃 一直以来,前端享有无需配置,一个浏览器足矣的优势,直到一大堆构建工具的出现,其中 webpack 就是其中最复杂的一个,因此出现了一个新兴职 ...
- 关于 图论·并查集·HDU1232&1856
其核心是追溯其根数和链接两个数,而HDU 1856要多一步,每一个根数要标记自己和自己子数的个数,因此用结构体.注意:1856 用C写没超时,用C++写超时了╮(╯﹏╰)╭ 接下来是题目和代码: 畅通 ...
- Spring Boot 定时任务单线程和多线程
Spring Boot 的定时任务: 第一种:把参数配置到.properties文件中: 代码: package com.accord.task; import java.text.SimpleDat ...
- Solr Update插件自定义Update Chain按条件更新索引
背景:基于call客,来电和跟进记录等多个数据来源的用户文档,需要在更新是判断首来源的时间. 如对电话号码11xxxx来说,来电时间是今天,call客时间是昨天,而call客数据又可能因为网络原因晚上 ...