Linux自带GCC4.7.2升级到GCC4.8.2以支持C++11特性

GCC4.7.2升级到GCC4.8.2

升级原因

在程序中涉及到了 std::string 的 raw 字符串(原始字符串),然后用 GCC 编译程序时出现错误,表示 "R()"关键字不识别。

代码片段

  std::cout << R"(
                   Hello,
                   world!
                 )" << std::endl;

1、 原始字符串示例

std_string.cxx 测试代码如下:

#include <string>
#include <iostream>

int main()
{
   
   
    //raw字符串,可以多行显示
    std::cout << R"(
                   Hello,
                   world!
                   )" << std::endl;

    return 0;
}

2、GCC不支持C++11

编译提示错误:

kalami@debian7:~/var/c++$ gcc -o rawstr std_string.cxx 
std_string.cxx:7:18: warning: missing terminating " character [enabled by default]
std_string.cxx:7:5: error: missing terminating " character
std_string.cxx:10:21: warning: missing terminating " character [enabled by default]
std_string.cxx:10:20: error: missing terminating " character
std_string.cxx: In function ‘int main()’:
std_string.cxx:7:17: error: ‘R’ was not declared in this scope
std_string.cxx:8:20: error: expected ‘;’ before ‘Hello’
kalami@debian7:~/var/c++$ 

3、GCC版本

kalami@debian7:~/var/c++$ gcc --version
gcc (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

kalami@debian7:~/var/c++$ 

升级GCC

1、升级目标

GCC4.7.2升级到 GCC4.8.2,以支持C++11 特性。

GCC支持C++特性参考:C++ Standards Support in GCC - GNU Project

2、升级步骤

①、获取GCC4.8.2源码

获取链接如下:

wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2  

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2

按网络速度,自行选择。

kalami@debian7:~/gcc4.8.2$ 
kalami@debian7:~/gcc4.8.2$ wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2  
--2024-07-10 09:36:18--  ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2
           => “gcc-4.8.2.tar.bz2”
正在解析主机 gcc.gnu.org (gcc.gnu.org)... 8.43.85.97, 2620:52:3:1:0:246e:9693:128c
正在连接 gcc.gnu.org (gcc.gnu.org)|8.43.85.97|:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。   ==&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值