2012-09-18 44 views
2

我正在使用Eclipse Juno CDT作爲我正在使用的類,但它告訴我它無法解析在包含文件中找到的類型,而這些不是我寫的標題。Eclipse沒有解析類型

我寫的程序編譯和運行完全按照它應該如果我通過命令行通過g ++運行它。問題在於我無法在Eclipse中進行調試,因爲它甚至不能識別字符串等基本類型。此外,沒有代碼完成。它發現包含文件很好,我可以打開它們並查看內容,但它仍然不會解析類型。

我已經看到很多有類似問題的人的建議,但所有結果都沒有找到包含文件,這不是我的問題。有什麼建議麼?

回答

0

也許這些類型是在一個命名空間中,而且你沒有限定它們(並且沒有使用using聲明)。

+0

不可以。使用命名空間標準,這是字符串的命名空間。 – user1678889

0

您可能已經爲頭本身包含了正確的目錄。在我的系統上是:/usr/include/c++/4.4.6/

但是,您可能沒有包含宏_GLIBCXX_BEGIN_NAMESPACE定義的目錄。如果沒有這個宏定義,eclipse不知道stl類型在std名字空間中。在我的系統上,這個宏定義在主C++ dir下面鬆動。嘗試添加以下路徑到您的包含列表:

/usr/include/c++/4.4.6/x86_64-redhat-linux 
/usr/include/c++/4.4.6/x86_64-redhat-linux/bits 

如果你不在紅帽尋找類似的東西。您可以轉至/ usr/include並運行以下grep以查找具有必需宏定義的標頭:

grep -R -P "define\\s*_GLIBCXX_BEGIN_NAMESPACE\(" . 
相關問題