我最近從Eclipse 3.6更改爲Eclipse 3.7,我在Ubuntu 11.04中用於C++開發。Eclipse 3.7無法解析C++編輯器中的類型
隨着版本3.6我沒有大的麻煩,除了我總是有索引器的一些問題。 現在版本3.7開始將未解決的類型標記爲錯誤。由於索引器似乎更不喜歡我,我的Eclipse顯然不知道uint16_t
或size_t
類型。
與代碼編輯器中顯示的錯誤相反,我的編譯器在編譯代碼和解析所有符號和類型時沒有問題,所以這似乎是IDE本身的問題。
有沒有什麼辦法可以避免這種行爲,因爲所有的紅色下劃線都會讓我的代碼越來越難讀......?
更新:
好了一些研究,從丹尼斯的答案,我發現我需要添加一些路徑 Project Properties/ C/C++ General/ Paths and Symbols
因爲我建立了一個PowerPC代替I32目標,我不能只添加/usr/include
。 相反,我需要添加
/usr/powerpc-linux-gnu/libc/usr/include
所有的標準頭(如stdint.h
)。 此外,我需要:
/usr/lib/gcc/powerpc-linux-gnu/4.5.1/include
的stdarg.h
。
現在幾乎所有的錯誤都消失了。仍然困擾我的唯一功能是從標頭stdio.h
的printf
。我查了一下,頭文件本身位於包含的路徑中。我仍然收到一個錯誤,說Function printf could not be resolved
。我想再次注意到,這些只是Eclipse顯示的錯誤 - 編譯本身工作正常。
所以實際上拋出了3個問題:
在項目屬性的
Paths and Symbols
部分凝聚與包括路徑出C++ Build/Settings/C++ Includes
節。這意味着在其中一個部分中添加/刪除路徑直接影響其他部分的輸入。由於C++ Includes
與編譯器直接相關,我想知道爲什麼編譯器可以編譯正確(並找到頭文件),即使它們沒有傳遞給他作爲路徑?有沒有某種GCC使用的標準路徑,我不知道?爲什麼他在eclipse中找不到
printf
?包含頭文件stdio.h
,它還包含printf
的聲明 - 那麼爲什麼Eclipse代碼編輯器告訴我它無法解決它?爲什麼頭文件分了這麼多?我意識到,如果我正在構建另一個traget(例如PowerPC),我需要其他頭文件 - 但爲什麼GNU GCC會將這些頭文件分隔到不同的dirs中?
我正在使用powerpc-linux-gnu-g ++編譯器。在我的C++ Build Settings中,我還配置了相應的include路徑('/ usr/powerpc-linux-gnu/include/C++/4.5.1')。此路徑我也添加到項目包含路徑...不幸的是,沒有任何更改.. – Toby 2012-07-10 15:03:42
'size_t'在''中定義。如果你在你的文件中包含它,看看它是否會使紅線消失。如果不是,請看'#include '是否用黃線加下劃線。如果這樣懸停在它上面,並且如果它說它找不到它,那麼你的包含設置有問題。 另請嘗試重新構建項目的索引。 –
Dennis
2012-07-10 15:23:51
嗨丹尼斯,謝謝你的輸入 - 我剛剛更新了一下這個問題。也許你可以進一步幫助我。 – Toby 2012-07-11 12:24:18