2013-06-23 31 views
3

我在Ubuntu 13.04上使用Eclipse Juno爲覆盆子pi開發。我配置本指南之後的交叉編譯工具鏈:http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/Eclipse顯示帶註釋的錯誤,但成功建立

我得到了我的Hello World程序編譯和運行正確的樹莓派,但是Eclipse詮釋所有STL包括爲錯誤。

我已經試過什麼:

  • 重建項目
  • 重建索引(首頁 - >重建)

我猜我失去了我的配置一些路徑,但我不確定哪一個。我在Google上做了大量的研究,但卻找不到針對這個問題的具體解決方案。

所以現在的問題是,我該如何配置Eclipse看到C++ STL包含路徑正在使用我的生成命令? (ARM-Linux的gnueabihf-G ++)

更新:

我一直在尋找通過包括路徑我盲目之前複製粘貼,並注意到它們中的一個是應該指向C++ STL,但在文件夾結構中沒有足夠深入。我通過將.../include更改爲.../include/c++/4.7.2修復了這個問題,並修復了日食中不會看到的STL。

但現在我有一個新問題:當我包含一個文件,例如,#include <string>,我不能使用字符串類型;它強調的string每個實例,並表示Type 'string' could not be resolved.但是,如果我重新啓動Eclipse錯誤消失 ...直到我做的代碼,它帶來的紅線後面的任何更改。而且,程序編譯成功。

回答

0

CDT可以很任性的時候。但是如果你的路徑出錯了,程序將無法正常運行,所以你的編譯器知道STL。我在導入一些第三方庫(源文件)時遇到了這種問題,並且切換了包含的順序修復了它。你的情況可能更復雜......

如果不能擺脫這種錯誤的,你仍然可以禁用某些特定的錯誤,並把它變成簡單的警告,但這將是一個有點容易出錯,而且危險:

Project > Properties > C/C++ General > Code Analysis > Use project settings > Switch the errors that are bugging you into warnings

祝你好運。

+0

編譯器知道STL,是的。但是Eclipse不是編譯器,它是一個IDE,它具有用於檢測可用包含文件的不同系統。就我而言,編譯器和IDE之間存在斷開。而禁用錯誤並不是真正的選擇,看看如果IDE無法看到包含文件,那麼幾乎我寫的每一行都以紅色標出。 – Andrew

+0

是的,當然。我知道IDE和我每天使用的編譯器之間的區別。這不是我的觀點,我知道我的答案不是很有幫助。這裏的重點只是警告你,CDT仍然有點bug,例如,我注意到windows版本顯示的問題比Linux問題更多關於你正在討論的問題的類型。並且,相信我很抱歉不能在這裏幫助更多。 –

0

如此看來,我的問題解決了通過簡單地改變包括路徑C++ STL到別的東西,然後回來。

步驟:

  1. 找到包括路徑STL和從.../include.../include/c++/4.7.2
  2. 重新啓動Eclipse改變,你可能會注意到它的部分現在的工作(仍然有一些奇怪的行爲怎麼回事,我在問題中提到)
  3. 更改.../include/c++/4.7.2回到.../include
  4. 重新啓動Eclipse,現在它應該工作。
相關問題