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的版 ...
随机推荐
- 错误:android.view.InflateException: Binary XML file line #167: Binary XML file line #167: Error inflating class <unknown>
1:错误日志 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.8.activity.RecordActiv ...
- C++:C++在图片特定区域之外产生随机数
参考原文:C++产生随机数 (整数) C++在图片特定区域之外产生随机数,避开正则表达式,可以分为两种情况. 第一种:在某个数之前生成随机数:第二种,生成随机数,加上某个数,然后截断:第三种,指定范围 ...
- 安卓JNI使用C++类
安卓JNI使用C++类,同时可使用C++的类成员变量,这就必须保证程序持续保存Native状态,即长期维护C++对象的地址.完成初始化之后,需要使用对象成员的java层函数需要传入对象的地址. 一.N ...
- 小程序viewflex布局的对齐不对的问题
index.wxml: <view class="container"> <view class="nav-container"> &l ...
- Android 性能测试初探(四)
书接上文 Android 性能测试初探(三) 自从 cpu及内存后,GPU 这个词对于 PC 性能测试者也不陌生了,什么 3Dmax,安兔兔之类的第三方软件让 GPU 在移动端性能测试领域都知晓,但对 ...
- Python对JSON的操作 day3
下面将为大家介绍如何使用python语言来编码和解码json对象: json串就是一个字符串,json串必须用双引号,不能使用单引号 使用json函数需要导入json库,import json 1.j ...
- 搭建rsync服务(端口号873)
rsync详细参数 1.-v,--verbose 详细模式输出,传输是的进度信息 2.-z,--compress 传输是进行压缩以提高传输效率,--comperess -level = NUM可以按级 ...
- 59.bouncing results
一.bouncing results成因及解决方案 bouncing results问题,两个document排序,field值相同:不同的shard上,可能排序不同:每次请求轮询路由到不同的 ...
- Python-jquery-datatable服务器分页.
第一步: js初始化: part01:ajax设置 part02:语言设置 part03: 行列设置: part04: 具体渲染设置: 第二部: 服务端设置: 第一部分 获取固定表示: 第二部分 对数 ...
- Python语言认识和实用工具(1)
目录 1. Python语言概述 2. Python使用注意事项 3. Python学习工具 1. Python语言概述 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,语 ...