linux下安装或进级GCC 4.8以支持C++11尺度
当前位置:以往代写 > C/C++ 教程 >linux下安装或进级GCC 4.8以支持C++11尺度
2019-06-13

linux下安装或进级GCC 4.8以支持C++11尺度

linux下安装或进级GCC 4.8以支持C++11尺度

C++11尺度在2011年8月份得到一致通过,这是自1998年后C++语言第一次大修订,对C++语言举办了改造和扩充。随后各编译器厂商都各自实现或部门实现了C++中的特性。

如需查察各编译器对C++11的支持水平,请参看文章:

本文主要先容在Linux系统下,如何进级GCC以支持C++11。今朝来看GCC是对C++11支持水平最高最多的编译器,但需要GCC4.8及以上版本。

本文利用操纵系统:Centos 6.4 Desktop,64bit;

原GCC版本:4.4.7;

方针:进级GCC到4.8.2,以支持C++11。

获取GCC 4.8.2包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;

解压缩:tar -xf gcc-4.8.2.tar.gz;

进入到目次gcc-4.8.2,运行:./contrib/download_prerequisites。这个神奇的剧本文件会帮我们下载、设置、安装依赖库,可以节省我们大量的时间和精神。

成立输出目次并到目次里:mkdir gcc-build-4.8.2;cd gcc-build-4.8.2;

../configure –enable-checking=release –enable-languages=c,c++ –disable-multilib。–enable-languages暗示你要让你的gcc支持那些语言,–disable-multilib不生成编译为其他平台可执行代码的交错编译器。–disable-checking生成的编译器在编译进程中不做特别查抄,也可以利用–enable-checking=xxx来增加一些查抄;

编译:make;留意此步和上一步,较量耗时;

安装:make  install;

验证:gcc -v;可能g++ -v,假如显示的gcc版本仍是以前的版本,就需要重启系统;可能可以查察gcc的安装位置:which gcc;然后在查察版本 /usr/local/bin/gcc -v,凡是gcc都安装在该处位置,假如显示为;

linux下安装或升级GCC 4.8以支持C++11标准

则暗示已经进级乐成。

验证是否可以或许正常事情,以新插手到C++11中的std::array为例。

vim stdarray.cpp;

输入C++代码:

#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
#include <array>
     
int main()
{
    // construction uses aggregate initialization
    std::array<int, 3> a1{ {1,2,3} };  // double-braces required
    std::array<int, 3> a2 = {1, 2, 3}; // except after =
    std::array<std::string, 2> a3 = { {std::string("a"), "b"} };
     
    // container operations are supported
    std::sort(a1.begin(), a1.end());
    std::reverse_copy(a2.begin(), a2.end(), 
                      std::ostream_iterator<int>(std::cout, " "));
     
    std::cout << '\n';
     
    // ranged for loop is supported
    for(auto& s: a3)
        std::cout << s << ' ';
    std::cout << '\n';    
}

编译:g++ -std=c++11 -o stdarray stdarray.cpp; 必然要加上c++11,不然大概无法编译可能无法运行。

运行:./stdarray;

功效输出:

linux下安装或升级GCC 4.8以支持C++11标准

则暗示进级后的GCC确实可以或许支持C++11开拓。

作者:cnblogs lizhenghn

    关键字:

在线提交作业