2009-09-19 7 views
5

NetBeansのC++プロジェクトで小さなグループを扱っています。NetBeans 6.7.1、Linux、C++の "Unable to resolve ..."

何らかの理由で、正しいライブラリが含まれていても、NetBeansは「string」、「endl」、「cout」などを「Unable to Resolve」と報告しています。

プロジェクトは期待どおりにコンパイルされて実行されるため、一日の終わりには大きな問題はありません。エラーとマークされたものはすべて迷惑になります。

私はこのバグで何かを見つけることができませんでした。ブログでただ一つのあいまいな言及。他の誰かがそれを経験しましたか?

明らかに、それは広がっていないので、それを引き起こす設定/構成が必要です。誰にもこれが起こらないようにする人がいますか?

EDIT:

いいえ、これらの "エラー" は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に表示されるのですか、コンパイルの段階でこれらの問題が発生していますか? –

+1

IDEでのみコーディングするとき。すべてがコンパイルされ、エラーまたは警告なしで実行されます。完全に有効なコードですが、NetBeansはまったく同意しません –

+0

C++を書くときには、 ''の代わりに ''を含める必要があります。 cstdlibは、とりわけC++のネームスペースを利用します。 –

答えて

0

下線が引かれ、数日後、私は、NetBeansのための6つの更新プログラムが利用可能でした。このアップデートをインストールした後、問題が修正されました、コードが変更されていないにもかかわらず、明らかにNetBeansのバグでした。

+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

0

あなたはライブラリが含まれた後、ソースファイルの先頭にstd::stringstd::endlstd::coutなど

あるいは、

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

を試してみてください。たぶん、あなたのIDEはそれらをエラーとしてフラグを立てていますが、とにかく標準名前空間を使用しています。

また、単に

using namespace std; 

を使用することができますが、それはそれとして、一般的にクラッタグローバル名前空間の悪い癖で、あなたは曖昧(標準名前空間が大きい)で終わることができます。個人的には、小さなプロジェクトにすべてのものの前にstd::を、プロジェクトにはusing std::______を置きます。大きなプロジェクトではそれを使用します。

とにかく、それはエラーのようですが、(少なくとも私の経験では)これが問題であれば、プログラムはコンパイルに失敗するはずです。

あなたの編集ごとに:
あなたが得るエラーはIDEからのみである場合、多分あなたは間違ったモードか何かでそれを持っていますか?あなたの例で投稿したコードは、C++でうまく動作する任意のコンパイラまたはIDEが問題なく扱えるほど簡単なC++です。あなたが記述したエラーがあなたのコンパイラから来たのであれば、あなたは名前空間を含めなかったか、あるいはCコンパイラでC++コードをコンパイルしようとしていたことになります - おそらくnetbeansはC言語を書いていると思いますか?

+0

"この問題が発生した場合、プログラムはコンパイルできません"の場合は、実際の質問から次の引用符を参照してください。 "プロジェクトがコンパイルされ、期待通りに実行されます" ありがとうございました。 –

+0

それはできません。それは、私たちが正しく書くクラスと、参照渡しするクラスを認識します。どんな言語モードであっても、それはうまくいき、文字列ではないとは思えません。 –

+0

奇妙な。私が考えることのできる何も他にありません –

1

hmm ..この同じ事がちょうど私に起こった。私がNetBeansを起動したときに、openGL(gl、glu、glut)へのすべての呼び出しにただ下線を引いただけで、エラーを取り除くことはできませんでした。

この記事を読んだ後、私は更新をチェックして更新しましたが、今はエラーがないことを示しています:)それは私が更新する奇妙なcuzです定期的に..

はEDIT: NVM、今、彼らは興味がある人々のために再び:(

0

FWIW Ubuntu 10.04でNetbeans 6.8と同じ問題が発生しました。 Netbeansは、ヘルプ - >アップデートの確認メニュー(これはUbuntuの最新バージョンです)で最新のものであると迷っていました。

synaptic/aptitude経​​由でNetbeansを削除し、手動で最新バージョン(6.9.1)をダウンロードしてインストールすると、私の問題が解決しました。

これを解決してthisのパフォーマンスパッチを適用したので、すばらしいコード補完機能を備えた本当に魅力的なIDEを手に入れました。このエクスペリエンスはそのままでは入手できないことは残念ですが、Eclipse CDTとNetbeansの両方でうまく動作するように努力しました。