《C++ Primer第五版》读书笔记(1)--redhat linux下安装gcc 4.8.2



13年的职业生涯中,做了7年半的C++编程,告别了大约5年半了.读本“新书”《C++ Primer英文版(第五版)》(2012年8月第一次印刷),重温下基本概念,再学点C++11的新特性,也是一大享受。

本blog只摘录新版有意思的知识点,以及一段时间不用又会糊涂的点(比如const的各种应用场景),要系统的学习,建议大家看看原书,还是写的很不错滴。

工欲善其事,必先利其器,本人所有的Redhat Enterprise Linux Server 6.4中的gcc版本为4.4.7,对c++ 11的支持还不够好,打算换成4.8.2,要使用对C++ 11的支持,在命令行中需要加上-std=c++0x,在gcc4.7之后也可以使用-std=c++11.

本文主要描述如何安装gcc 4.8.2,主要参考了这篇文章:http://blog.csdn.net/dyllove98/article/details/8917485

 

以下操作均在root用户下.

1.首先下载新版本的GCC到/usr/local/src:

[root@RHVM ~]#cd /usr/local/src

[root@RHVM ~]#wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2

2.下载编译所需依赖库

cd gcc-4.8.2

./contrib/download_prerequisites

cd ..

3.建立编译输出目录

cd ..

mkdir gcc-build-4.8.2

4.进入此目录,执行以下命令,生成makefile文件

cd  gcc-build-4.8.2

../gcc-4.8.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

5.编译

make -j4

如果编译成功,则时间是比较长的,半个小时左右,所以如果你看它一直在输出没有立刻停下来,应该很开心!

6.安装

sudo make install

7.切换GCC到新版

确定新安装的GCC的路径,一般默认在/usr/local/bin下。先updatedb:

[root@RHVM ~]# updatedb

[root@RHVM bin]# ls /usr/local/bin | grep gcc
gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-4.8.2
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib

添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.2 40

8.确认当前版本已经切换为新版

gcc -v


我这里用ssh远程的,发现版本没变,断开重练下,重新生成会话后发现变成了4.8.2了!

[root@RHVM ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.8.2 (GCC)

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。