linux下编译gcc4.8.2

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46811159

最近要用到c++ 11,所以没办法只得把那台centos6.6的gcc4.4.7升级一下。

gcc编译器已经出到5.1了,但是我对最新的版本并没有特别大的兴趣,更喜欢稳定性的版本。

gcc4.8.1 是第一个完全支持C++11 的编译器,我这边装的是4.8.2.

一、获取gcc4.8.2包并解压缩:

下载链接:http://gcc.skazkaforyou.com/releases

里面有gcc所有的版本,自行下载。

也可以选择: wgethttp://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz

然后解压缩: tar -zxvf gcc-4.8.2.tar.gz

二、安装依赖库:

进入gcc-4.8.2目录,执行./contrib/download_prerequisities脚本会自动下载三个依赖库别为gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1

或者自己手动下载:

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

然后就是机械的安装过程了。

cd gmp
./configure --prefix=/usr
sudo make && make install

cd mpfr
./configure --prefix=/usr
sudo make && make install

cd mpc
./configure --prefix=/usr
sudo make && make install

注:g++ -v 可以看到系统原有的gcc的安装目录 即--prefix变量的值(一般是/user或者/user/local),你自己安装的时候配置跟它一样是最好的了,这样最方便。

如果编译的时候是自定义指定的安装路径,那你就要把lib目录放到ld.so.conf里面并执行ldconfig了。

如果还不行,在编译 gcc 时需要加上下面的选项:

--with-mpc=MPC的安装目录

--with-mpfr=MPFR的安装目录

--with-gmp=GMP的安装目录

三、编译安装GCC4.8.2

./configure --prefix=/usr --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib

sudo make && make install

gcc的参数配置:

--prefix                  //默认gcc的安装目录,最好跟原有的gcc的安装目录一致

--disable-checking        //生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查;

--enable-languages        //指定gcc能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java

--disable-multilib        //默认gcc能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。

注:如果你不是装在/usr 或者 /user/local 那么链接到对应的目录下就行了。

四、测试成功

查看gcc -v发现已经成功更新到4.8.2

执行一个示例:

#include <iostream>
#include <vector>

int main()
{
	int arr[] = {2,4,6,8,10};
	size_t count=sizeof(arr)/sizeof(arr[0]);
	std::vector<int> vec(arr,arr + count);
	//for (std::vector<int>::iterator iter = vec.begin(); iter != vec.end(); ++iter)
	for (auto iter = vec.begin(); iter != vec.end(); ++iter)
	{
		std::cout<<*iter<<std::endl;
	}
	return 0;
}

g++ cpp11.cpp -o cpp11-std=c++11

如果不加-std=c++11就会编译错误,因为没办法识别auto iter,这是c++11才有的语法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 08:25:12

linux下编译gcc4.8.2的相关文章

linux下编译安装boost库

转载:http://www.cnblogs.com/oloroso/p/4632848.html linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4.安装boost库到指定目录 5.测试一下 代码 编译运行 先看一下系统环境 Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15

linux下编译QBittorrent-3.1.9.2

序言 QBittorrent是一个新的轻量级BitTorrent客户端,可运行于Linux.windows及其他可能系统,它简单易用,漂亮的外观,功能强大,是linux下的一款比较出色的bt下载工具.然而想使用它却不简单,废了我两天时间终于搞定了,记录一下解决的过程,算是对于两天辛苦的一个总结吧! 配置信息及需要的软件 操作系统:CentOS 6.5 32位 Qt版本:Qt4.6.2,安装系统时自带的. 编译器:gcc4.8.2,需自己编译. 调试器:gdb7.7,需自己编译. QBittorr

linux下编译php追加enable的方法

如果我们运行php时发现缺少某个库,在windows环境下很简单,找到.dll 对应的库文件,然后拷贝到 extension 目录下,然后在php.ini 里 去掉 前面的分号或者 追加一行 extension = XXXX.dll 即可. linux环境下,可不是像windows环境下那么的简单. 下面我们已 sysvmsg 这个库文件的安装为例 来详细说明php的编译方法 收件进入php的原始文件 比如我是下载在这个路径下: [[email protected] php-5.2.17]# c

linux下编译qt5.6.0静态库——configure配置

 随笔 - 116  文章 - 4  评论 - 7 linux下编译qt5.6.0静态库--configure配置 linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义'QT_MODBUS()'和'QT_MODBU

linux下编译安装php各种报错大集合

PHP开源脚本语言 PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域.PHP的文件后缀名为php. 本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. 报错1:make 后报错如下: Generating phar.php /home/oldboy/tools/php-5.3.27

Linux下编译ffmpeg

Linux下编译ffmpeg太简单了. 1.下载yasm 1-1. 下载地址:http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz 1-2. 解压缩: tar zxvf yasm-1.3.0.tar.gz 1-3. cd yasm-1.3.0进入 1-4. 命令行执行./configure 检测环境并生成Makefile文件 1-5. 执行make编译,sudo make install安装 2. 下载ffmpeg 2-1

Linux下编译安装qemu和libvirt

目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3 参考资料 KVM虚拟机(英语:Kernel-based Virtual Machine),是一种用于Linux内核中的虚拟化基础设施.KVM目前支援Intel VT及AMD-V的原生虚拟技术.KVM在2007年2月被导入Linux 2.6.20核心中.它也被引入FreeBSD.在Mac OS X中,

[转载]linux下编译php中configure参数具体含义

编译N次了   原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php                      php 安装目录 –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc      指定php.ini位置 –with-mysql=/usr/local

在linux下编译openjdk7

最近刚开始看<深入理解JAVA虚拟机>这本书.第一章的实践是自己手动编译openjdk7,但书上的步骤都是基于windows的,于是在网上搜了一下linux下编译openjdk的资料: http://blog.csdn.net/kindazrael/article/details/7266314 http://guoh.org/lifelog/2011/05/compile-openjdk-by-yourself/ 这辆篇文章都说的比较详细.其实,最好的文档是openjdk源码包中的READM