2009-09-19 51 views
5

我正在NetBeans中的C++項目中使用一個小組。NetBeans 6.7.1,Linux,C++中的「Unable to resolve ...」

由於某些原因,即使已包含正確的庫,NetBeans也會將「string」,「endl」,「cout」報告爲「無法解析」。

項目按預期編譯和運行,所以在一天結束時,這沒什麼大不了的,只是將所有標記爲錯誤的內容都視爲非常煩人。

我一直無法找到這個bug的任何東西。在博客中只是一個模糊的參考。有沒有人經歷過它?

顯然它不是廣泛傳播,所以必須有一個設置/配置導致它。有誰知道誰來防止這種情況發生?

編輯:

沒有,這些 「錯誤」 是僅在IDE中。代碼編譯好並運行。開發者已經使用「using namespace std;」所以應該沒有問題。看來,NetBeans IDE是越野車。

示例代碼:

#include <stdlib.h> 
#include <string> 
#include <iostream> 

using namespace std; 

int main(int argc, char** argv) 
{ 
    string test; 
    test = "Why?"; 

    cout << test << endl; 

    return (EXIT_SUCCESS); 
} 

此代碼編譯並打印出 「爲什麼?」但在IDE中將「string」,「cout」和「endl」標記爲錯誤。明確使用的std ::沒有什麼區別

清理編輯:

任何有興趣,幾天後我可以NetBeans 6次中更新。安裝此更新後,儘管代碼未更改,但問題已解決。所以,顯然這是一個NetBeans錯誤。

+0

在代碼編輯期間,您是否在IDE中看到這些問題,或者您在編譯階段看到這些問題? – 2009-09-19 08:20:47

+1

僅在編碼期間在IDE中。一切都編譯並運行,沒有錯誤或警告。這是完全有效的代碼,NetBeans恰好不同意 – 2009-09-19 11:34:42

+0

當你編寫C++時,你應該包括''而不是''。除此之外,cstdlib將利用C++中的命名空間。 – 2009-09-19 17:17:29

回答

0

強調,任何有興趣,幾天後我可以NetBeans 6次中的更新安裝此更新之後,問題得到糾正,儘管代碼沒有改變,所以顯然這是一個NetBeans的bug。

+0

我也有這個問題。我有NetBeans 7.1。但在Windows 7中仍然無法正常工作。代碼工作正常。但出現錯誤。 [這是我的問題](http://stackoverflow.com/questions/20936513/c-in-netbeans-shows-errorsunable-to-resolve-identifiers-but-the-code-runs-fi) – prime 2014-01-05 17:56:21

0

嘗試std::stringstd::endlstd::cout

或者,

using std::string; 
using std::endl; 
using std::cout; 

在你的源文件的開頭,以後你包括圖書館。也許你的IDE將它們標記爲錯誤,但是隨後使用標準命名空間。

您也可以只使用

using namespace std; 

但通常是一個壞習慣,因爲它雜波的全局命名空間,你可以用含糊不清(標準命名空間是很大的)結束。就我個人而言,我只在我的小型項目中放置了std::,並且在項目中放置了using std::______,或者我在大型項目中使用了using std::______

不管怎樣,這就是錯誤聽起來像,但(至少以我的經驗),如果這是問題,程序將無法編譯。

根據你的編輯:
如果你得到的錯誤只來自IDE,也許你有它在一個錯誤的模式或什麼?你在你的例子中發佈的代碼是足夠簡單的C++,任何願意使用C++的編譯器或IDE都可以處理它。如果你描述的錯誤來自你的編譯器,這意味着你或者沒有包含命名空間,或者你試圖用C編譯器編譯C++代碼 - 也許netbeans認爲你在編寫C?

+0

對於「如果出現這種問題,程序將無法編譯」。請從實際問題中看到以下報價: 「項目編譯並按預期運行」 謝謝您嘗試提供幫助。 – 2009-09-19 11:36:36

+0

不能這樣。它識別我們正確編寫的類,以及通過引用傳遞。我想不出任何語言模式,它可能是在哪裏,罰款和字符串不是。 – 2009-09-19 23:45:07

+0

很奇怪。沒有什麼我能想到的 – 2009-09-20 08:05:24

1

嗯..同樣的事情發生在我身上。有一次我創建了NetBeans,它只是強調了我所有的openGL(gl,glu和glut)的調用,並且我無法擺脫這些錯誤。它編譯得很好(+我沒有改變代碼,因爲上次顯示沒有錯誤)

看完這篇文章後,我檢查了更新,更新,現在它表明沒有錯誤:)它是奇怪的因爲我更新定期..

編輯: NVM,現在他們再次:(

0

FWIW我在Ubuntu 10.04上遇到了與NetBeans 6.8相同的問題。令人沮喪的Netbeans也告訴我,它在幫助 - >檢查更新菜單中是最新的(因爲這是Ubuntu的最新版本)。

通過synaptic/aptitude刪除Netbeans並手動下載並安裝最新版本(6.9.1)也爲我解決了這個問題。我希望在商店裏沒有更多這樣的惡意...

現在我已經解決了這個問題,並且應用了this性能補丁,我已經有了一個非常棒的IDE,並且代碼完成速度很快。這是一種遺憾,這種經驗並不是開箱即用的,我在Eclipse CDT和Netbeans上花了相當長的一段時間,試圖讓事情順利進行。

相關問題