在学习《C++ Primer》时,我用的环境是Ubuntu14.04,采用DPKG机制最新能使用的gcc版本是4.8.4,虽然这个版本已经对C++11支持的已经很好了,但是还是有一些小问题。
例如,对于string类型,可以使用insert(p,b,e) 将迭代器b,e指定范围内的元素插入到迭代器p指向的元素之前。在c++11标准下,insert返回的是第一个新加入元素的迭代器,旧版本中返回void;在使用g++ 4.8进行编译的时候会报错,提醒insert返回的是void类型,无法用上述函数返回一个迭代器。
解决上述问题可以通过安装更高版本的gcc来解决问题,我安装的是gcc5.3.0来解决。
下载解压缩
从gcc镜像站点上下载GCC5.3,可供下载的文件有两种形式:gcc-5.3.0.tar.gz和gcc-5.3.0.tar.bz2。两种文件的内容都是一样的。
通过tar -xzvf gcc-5.3.0.tar.gz 或者tar -xjvf gcc-5.3.0.tar.gz 解压相应的文件,解压后得到目录gcc-5.3.0,在gcc-5.3.0/INSTALL里面有详细的安装说明。