对于linux小白来说,只需要先知道怎么安装,至于为什么等学了linux再说吧。。知识不系统的坏处啊!
首先,一般ubuntu上都预装了低级版本的Gcc,完全可以应付刷OJ时的C+Class+STL的风格,但因为寒
假里非常固执地要看C++primer,所以只能把编译器升级到最新版本以符合C++11/14标准。
安装GCC必备的几个东西:
1。gcc5.3.0的源代码压缩包,这个可以直接去GCC的FTP站上下载。文件名是gcc-5.3.0.tar.gz(wget)
2。四个压缩包:
m4(即an implementation of the traditional Unix macro processor)、
gmp(即GNU Multiple Precision Arithmetic Library)、
mpfr(即multiple-precision floating-point computations with correct rounding)
mpc(即C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding)
在GCC的官方FTP镜像站都能找到以上几个包,可以暂时解压到temp文件夹中。
这四个包中,第一个可以通过ubuntu软件中心默认安装。下面四个则不能随意安装,实际上,他们是按照gmp-->mpfr--->mpc-->gcc
的顺序来安装的。
安装流程:注意#后为注释
(1)ubutu软件中心自动下载M4
(2)ftp下载gmp-6.0.1,在当前目录下,
tar xvf gmp-6.1.0.tar.bz2
#在与gmp-6.1.0同级别的目录下建一个新文件夹,叫temp(自己命名)
cd temp
../gmp-6.1.0/configure –prefix=/usr/local/gmp-6.1.0 ------------#这句是说,安装路径是/usr/local/,名字叫gmp-6.1.0;
make
sudo make install
#安装好后,可以查看/usr/local/gmp-6.1.0目录下有三个文件夹
(3)下载安装mpfr-3.1.3
#先清空temp内的文件,这样安装两个包互补影响,当然也可以另外新建一个文件夹,在你新的文件夹下:
../mpfr-3.1.3/configure --prefix=/usr/local/mpfr-3.1.3 --with-gmp=/usr/local/gmp-6.1.0 # prefix是安装路径,with是依赖的gmp库
make
sudo make install
(4)下载安装mpc-1.0.3
同样先清空temp文件夹
../mpc-1.0.3/configure –prefix=/usr/local/mpc-1.0.3 –with-gmp=/usr/local/gmp-6.1.0 –with-mpfr=/usr/local/mpfr-3.1.3
make
sudo make install
(5)安装GCC-----妈蛋才开始说正事
#再次清空temp首先配置GCC,在temp文件夹中执行以下命令,注意,此时temp和gcc-5.3.0在同级目录下
../gcc-5.3.0/configure --prefix=/usr/local/gcc-5.3 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.3 --with-mpc=/usr/local/mpc-1.0.3
make
make install
#在配置时,对于语言language=选项,可以根据自己需要的编译器选择语言。 ,java,obc都可以加进去
#至此GCC5.3安装完毕。
配置环境变量
此时系统中存在两个版本的gcc,一个是/usr/bin/gcc , 另一个是/usr/local/gcc-5.3/ 如不修改环境变量,在每次调用5.3版本的gcc时都需要指定路径。为了方便使用,可以在/usr/bin目录下做一个符号链接
cd /usr/bin
ln -s /usr/local/gcc-5.3/bin/gcc gcc53
ln -s /usr/local/gcc-5.3/bin/g++ g++53
这样就可以使用gcc53 g++53来调用程序了,旧版本的gcc,g++仍然可以适用。
对于库路径同样需要设置下,这样,保证在调用库函数的时候可以适用到新版编译器的库函数,在etc/profile文件中适用root权限添加如下代码
export LD_LIBRARY_PATH=/usr/local/gcc-5.3/lib:/usr/local/gcc-5.3/lib64:$LD_LIBRARY_PATH
注销重新登录,使变量生效
至此,gcc5.3安装完毕,解决了上述C++11的支持问题。