簡體   English   中英

如何使用Eclipse編譯c ++ 0x代碼?

[英]How do you compile c++0x code using Eclipse?

當我決定熱衷於開源世界時,我下載了用於C / C ++開發人員的Eclipse IDE(Kepler Service Release 1)並安裝了minGW。

我使用minGW作為工具鏈創建了一個新項目,我可以使用<iostream>創建hello world程序,但如果我嘗試創建一個tuple ,智能指針或任何其他c ++ 0x,我會得到一個“符號不是發現“錯誤:

#include <tuple>
int main(int in)
{
    std::tuple<int> lameTuple; // symbol "tuple" could not be resolved
    return 0;
}

我嘗試將-std=c++0x添加到GCC C ++編譯器工具設置中的其他標志 ,但這似乎沒有幫助。 有任何想法嗎?

我也遇到過這個問題。 在Windows上使用Eclipse + Mingw GCC是一個令人難以置信的......令人震驚的設置,因為這樣的隨機問題。 例如,我在我的工作區中有一個C ++ 11項目,除了std = c ++ 11或gnu標志外,不需要任何解決方法,而其他項目則完全死亡。

不幸的是,唯一的答案是我認為是黑客。 如果你看一下Tuple標題,你會看到:

#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else

所以這里答案(解決方案)變得明顯。 某處,無論是編譯器標志還是.cpp文件中的定義,您都希望將__cplusplus定義為大於201103L 我是怎么做到這一點的

項目屬性 - > C / C ++通用 - >路徑和符號

然后,在“符號”選項卡下,我添加了一個新符號。 對於符號名稱,我使用了__cplusplus而對於我使用的值201303L 這將強制索引器重新運行,此時Eclipse將正確使用C ++ 11包含。

另外,我認為有人創建了一個Eclipse CDT + Mingw GCC安裝程序,可以正確設置所有內容。 這個問題只是揭示了您使用此IDE和工具鏈遇到的大量問題,從錯誤的Mingw版本到IDE中的糟糕索引和解析。 在那個注意事項上,請務必確保您沒有使用Mingw的錯誤分發。 這也可能導致這些問題。

編輯#1
另請注意,即使使用此符號,也應在 - “其他”下包含--std = X標志作為編譯器標志。 此符號僅供IDE使用正確的C ++ 11支持解析標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM