2013-04-23 47 views
1

在從Indigo切換後面臨Ubuntu 12.04中最新Eclipse Juno的各種問題。
我在下文國旗:
項目 - >屬性 - > C/C++編譯 - >設置 - >工具設置 - >交叉G ++編譯器Eclipse Juno CDT:與C++ 11不兼容以及調試問題

  • - >雜項:-std=c++11
  • - >預處理器:__GXX_EXPERIMENTAL_CXX0X__(也設置在C/C++常規 - >路徑和符號)

目前,我正在編譯在靛藍編譯與C++ 03罰款的代碼。更改爲C++ 11後,我確實收到了一些可能由於g ++擴展而導致的錯誤,並且我修復了這些錯誤。

現在,這裏是我要解決這些問題:

  1. 如果我切換回普通的C++編譯,然後我收到一個錯誤:從 文件c++0x_warning.h This file requires compiler and library support for the \ ISO C++ 2011 standard. This support is currently experimental, and must be \ enabled with the -std=c++11 or -std=gnu++11 compiler options.。即使在清潔構建或重新啓動eclipse時,錯誤也不會消失。
  2. 調試無法按預期方式工作。執行停止在給定 斷點,但是當我將鼠標懸停在變量上時,它不顯示任何值 。在Indigo中,它用來顯示它。在Eclipse的各種設置中做了很多試驗和錯誤,但沒有運氣。也檢查, 窗口 - >首選項 - > C/C++ - >盤旋,但無法更改 任何有。
  3. 其中包括<unrodered_map>工作正常,但如果使用 std::unordered_map<>則會開始給出錯誤。目前, 我對這個問題最不關心。

如果任何人都可以提出一個鏈接或方法做的Eclipse(麥浚龍)的有效調試,那麼這將是對未來的遊客有很大的幫助,以及。

注:我已經在SO提到幾個線程,但他們都不是有幫助的:
Eclipse CDT C++11/C++0x support
Cannot set Eclipse Juno C++ with std=c++11
Eclipse CDT Juno - Toolchain issue

+0

附加信息:編譯器是g ++ 4.8.0。 – iammilind 2013-04-23 04:46:08

+0

放棄日食。救你自己。 – mythagel 2013-04-23 05:55:44

+0

我有同樣的問題,只要我自己完成檢查就會給你答案。 – 2013-04-23 12:48:15

回答

1

首先,我開始了與全新安裝的整個事情,作爲未來的參考,我想展示如何從頭開始安裝和使用GCC。

首先進入Ubuntu軟件中心,並下載最新版本的GCC,即GCC 4.8。現在,您可能會遇到問題,因此我建議您在嘗試查找軟件時輸入gcc-4.8。用g ++也是一樣,你輸入g++4.8來得到你想要的。確保你有正確的版本。由於Linux的開源特性,涉及版本的問題往往很多。

- >:按ENTER鍵

現在,打開你的終端,並輸入以下內容:

  • sudo su - - >這會給你特殊的root權限。
  • 現在它會詢問你的密碼,輸入 - >
  • !警告,在這部分不要犯錯誤,因爲root可以造成很大的傷害!
  • 現在改變你的目錄,輸入cd /usr/bin - >
  • 類型ls -l gcc* g++* cpp* - >
  • 這將顯示提供給那些數據類型的符號鏈接
  • 類型ln -s g++-4.8 g++ - >
  • 類型rm cpp gcc - >
  • ln -s gcc-4.8 gcc - >
  • ln -s cpp-4.8 cpp - >
  • Now CTRL + D,兩次,這會將您移出終端。

現在,打開日食。轉到首選項>新CDT嚮導(或類似的東西) enter image description here 確保選中了Linux GCC。按下Make Toochains preferred。 現在,當你打開一個項目,確保你去到項目屬性,並執行以下操作:

  • C/C++編譯>設置>雜項。 >在其他flages下添加這個-std=c++11enter image description here

  • 與GCC C編譯器同樣的事情,但這個時候,你添加-std=gnu11

這應該設置好一切。不要使用Cross GCC,它總是給我帶來問題。

+0

而不是手動刪除/ usr/bin /中的文件update-alternatives – mythagel 2013-04-23 22:47:52

+0

@mythagel:這有時會給我帶來問題,所以我避免了這個問題,並且爲這個人提供了手動處理方式。 – 2013-04-24 07:31:58