1. 程式人生 > >Ubuntu安裝新版GCC並啟用C++11

Ubuntu安裝新版GCC並啟用C++11

    C++11,(即ISO/IEC 14882:2011),是目前的C++程式語言的最新正式標準。它取代了第二版標準(第一版公開於1998年,第二版於2003年更新,分別通稱C++98以及C++03,兩者差異很小)。新的標準包含核心語言的新機能,而且擴充套件C++標準程式庫。C++11新標準由C++標準委員會於2011年8月12日公佈,並於2011年9月出版。此次標準為C++98釋出後13年來第一次重大修正。

    像C++這樣的程式語言,通過一種演化的的過程來發展其定義。這個過程不可避免地將引發與現有程式碼的相容問題,在C++的發展過程中偶爾會發生。不過根據Bjarne Stroustrup(C++的創始人並且是委員會的一員)表示,新的標準將幾乎100%兼容於現有標準。關於C++11的新特性和一些版本變更請看:

C++11-維基百科

    目前最新版本的GCC/G++是4.8,新版本的GCC支援最新的C++11標準,十分值得去使用&學習。 下面讓我們在Ubuntu12.04 LTS用上GCC最新版本,去體驗C++11新標準帶來的東西吧!

首先非原始碼編譯式安裝:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8 
sudo apt-get install g++-4.8

等GCC/G++下載並安裝完以後,測試是否安裝成功:
gcc-4.8 -v
g++-4.8 -v

如果顯示版本號表示安裝成功:


安裝成功後我們如果要使用gcc-4.8和g++-4.8來編譯的話,我們就得把gcc改為gcc-4.8,g++同理,改為g++-4.8來進行編譯。

此時使用gcc -v檢視預設版本,為4.6版本:


如果你想直接使用gcc-4.8而不改變編譯時gcc改為gcc-4.8的話,我們就可以更改一下gcc的軟連結:

sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc
sudo rm /usr/bin/g++
sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++
現在我們用gcc -v來測試就能發現變為了4.8了!

既然GCC-4.8使用了最新的C++11標準,但是我們為什麼還是提示錯誤呢?解決方法如下:
在編譯的時候新增-std=c++11選項即可正常編譯C++11標準的程式碼!

我們可以寫一個簡單的例子來測試,這裡用的是C++11新標準的範圍for(Range for)語句,用來遍歷給定序列中的每個元素:

/*************************************************************************
	> File Name: test.cpp
	> Author: SongLee
	> E-mail: [email protected] 
	> Created Time: 2014年03月23日 星期日 22時29分19秒
    > Personal Blog: http://songlee24.github.io/
 ************************************************************************/
#include<iostream>
#include<cstring>
#include<cctype>
using namespace std;

int main()
{
    string str("some string");
    // range for 語句
    for(auto &c : str)
    {
        c = toupper(c);
    }
    cout << str << endl;
    return 0;
}

上面的程式使用Range for語句遍歷一個字串,並將所有字元全部變為大寫,然後輸出。其中auto型別也是C++11新標準中的,用來自動獲取變數的型別。

好了,接下來進行編譯執行:

g++ -o test test.cpp

提示錯誤:‘c’變數沒有型別,範圍for迴圈不允許在C++98標準中使用

這是因為GCC/G++預設的-std(即C++語言標準)不是C++11,在這裡預設的是C++98,所以需要顯式地開啟,即新增-std=c++11選項:

g++ -std=c++11 -o test test.cpp

編譯成功!!!執行以後輸出some string的大寫形式!

相關推薦

Ubuntu安裝新版GCC啟用C++11

    C++11,(即ISO/IEC 14882:2011),是目前的C++程式語言的最新正式標準。它取代了第二版標準(第一版公開於1998年,第二版於2003年更新,分別通稱C++98以及C++03,兩者差異很小)。新的標準包含核心語言的新機能,而且擴充套件C++標準程

gcc/g++以c++11編譯

pragma exp .cpp erro expect span 類定義 cte before 方法一: //在程序頭加上預定義編譯器命令 #pragma GCC diagnostic error "-std=c++11" //通過#pragma 指示 GCC編譯器處理錯誤

Ubuntu安裝Sublime Text輸入中文

中文 bject data- gen 能夠 ppa microsoft windows bin Sumblime Text3是一款傳說中的神級代碼編輯器,具有

Ubuntu安裝qt-opensource-linux-x64-5.11.1

登陸qt官方下載頁面:http://download.qt.io/archive/qt/ 本文以安裝qt-opensource-linux-x64-5.11.1為例。 把下載好的qt-opensource-linux-x64-5.11.1.run放進Linux系統裡。首先給qt-o

Ubuntu-安裝MySQL5.7配置使用者名稱密碼

1、安裝mysql sudo apt-get install mysql-server 2、2018年9月14日我安裝的MySQL為5.7.21,檢視方法為 mysql -V 3、5.7之後的mysql安裝直接完成,不會讓使用者配置使用者名稱和密碼,所以需要使用超級許可權直接進入MySQL su

Ubuntu 安裝python3.6設定為預設

   最近在學習python,要想學好一門語言,好的程式設計環境就是成就大神的第一步,所以學會安裝搭建python程式設計環境是必修功課。新手上路!有什麼錯誤的請各位大神指點,謝謝。 Step1:如果沒有安裝python相關依賴的可以安裝下 sudo apt-get in

Ubuntu 安裝firefox中文版 (啟用google翻譯功能)

1。首先,可以在軟體商店裡解除安裝當前firefox瀏覽器 2。官網下載firefox瀏覽器中文版firefox官網 3。解壓安裝包 4。把安裝包放到/usr/local下 sudo mv firefox /usr/local 5。建立軟連結 sudo ln -s /us

Ubuntu安裝WPS,解決系統字型問題

1、Ubuntu安裝WPS 開啟連結,點選下載安裝包 http://www.wps.cn/product/wpslinux/ 在下載安裝包的目錄下執行命令安裝 sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.de

在deepin 15.5中安裝vs code配置c/c++環境

參考了以下幾篇文章:https://www.zhihu.com/question/30315894/answer/154979413(雖然講解的是Windows環境中的安裝,但十分詳盡,很有參考價值);https://my.oschina.net/u/1044667/blog

Ubuntu安裝Mono2.10使用Apache承載Asp.Net mvc3應用程式

      Asp.Net長久以來令大規模部署所詬病的便是其成本的高企,mono的出現為.net應用程式打開了通往linux的一扇大門,使得.Net應用程式低成本部署成為可能。最近為了嘗試將Asp.Net Mvc3部署在Linux下,查閱了很多資料,但發現大多數都是在OpenSUSE的,介紹如何Ubuntu下

在deepin 15.5中安裝vs code配置c/c++環境(二)——配置clang

接上文:https://blog.csdn.net/defetc/article/details/79946100本文配置檔案參考:https://www.zhihu.com/question/30315894/answer/154979413一、安裝clang    apt

使用NDK編譯執行C++11的Command line命令列程式

用C++11寫了一個併發的類,使用了lock-free的演算法。需要在跨平臺(PC、android)執行一個測試程式,測試在不同CPU上是否穩定。 在android上,涉及到如何使用NDK編譯和執行命令列程式以及如何使用NDK編譯支援C++11的程式這兩個問題。 以下使用a

ubuntu14.04 下安裝sublime text3 搭建C/C++編譯環境

{     "show_output_panel": false,     "dont_prepend_clang_includes": true,     "inhibit_sublime_completions": false,     "options":     [         "-std=gnu

gcc g++ 支援c++11編譯的標準和區別

g++ -g -Wall -std=c++11 main.cpp gcc -g -Wall -std=c11 main.cpp 如果不想每次寫這個-std=C++11這個選項該怎麼辦呢?   方法1:寫Makefile   方法2:取別名 :alias g++11

ubuntu 安裝 redis,配置遠端、密碼

方式一: 本教程使用的最新文件版本為 2.8.17,下載並安裝: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz $ tar xzf redis-2.8.17.tar.gz $ cd redis

kubeadm安裝kubernetes v1.11.3 HA多主高可用啟用ipvs

har 3.1 oba smt lec template prior yaml 應用 環境介紹: 系統版本:CentOS 7.5 內核:4.18.7-1.el7.elrepo.x86_64 Kubernetes: v1.11.3 Docker-ce: 18.06 Kee

Ubuntu安裝其他版本的gcc指定gcc版本

為何要安裝其他版本的gcc 總有很多時候,Ubuntu預設的高版本gcc不符合現在專案的需求,需要我們用稍低版本的gcc進行編譯。這個時候,我們就需要學著如何安裝稍低版本的gcc,在兩者並存才情況下,指定稍低版本進行工作。 如何安裝 1.下載g

ubuntu麒麟下安裝啟用搜狗輸入法

1.首先開啟UK軟體,輸入搜狗尋找搜狗拼音軟體 然後下載搜狗拼音軟體 接著點選啟動該軟體 2.點選搜狗拼音的圖示,進入搜狗拼音的設定視窗 點選高階,並開啟FCITX設定 加入英語輸入法 3.這樣就可以進行中英文切換了

linux下安裝或升級GCC 4.8,以支援C++11標準

C++11標準在2011年8月份獲得一致通過,這是自1998年後C++語言第一次大修訂,對C++語言進行了改進和擴充。隨後各編譯器廠商都各自實現或部分實現了C++中的特性 。   如需檢視各編譯器對C++11的支援程度,請參看文章: 轉自:http://www.d

linux ubuntu 安裝新版gcc

可以直接照著做,也可以看後面的調整細節 去官網提供的映象點下原始碼包(最近的似乎是日本的那個) https://gcc.gnu.org/mirrors.html 解壓,假設解壓到目錄為source tar -xf xxx 下載一些依賴庫,直接跑這個指令碼就不用手動搞了