2016-03-25 5 views
1

C++ファイルを編集するためにCDTを使用しようとしています。しかし、それは文字列やベクトルのようなstdクラスを見ることを拒否します。Eclipse CDT「Tool Chains」のパスを含む文字列、coutなどが見つかりません

(私は今のところ、少なくとも。コードは罰金コンパイル、外日食のメイクを構築していきます。しかし、などの文字列の定義せずに、ほぼすべてがエディタでのエラーとして表示されます。)

私はルナを使用しています。 CDTは、Help> Install New Softwareを使用してJava指向のEclipseに追加されました。

ドキュメントでは、「をインストールすると、ツールチェインなどが発生します。しかし、これを読んで数時間を費やしていた私は、 "Tool Chain"というフレーズは、文に応じていくつかの異なる意味を持っていると思います。これらは、以下を含む:

  • コンパイラとリンカそのもの。これらのコンパイラを使用できるように、Eclipse自体に余分なもの(プラグイン?)が追加されました。 Eclipseの自身

私のメイクファイル内の

  • 設定

    D:\cygwin64\lib\gcc\x86_64-w64-mingw32\4.8.3\include 
    

    を使用していますが、時にはCDTは、それが同じになりますよう、OKです

    D:\mingw64\include\c++\4.5.4 
    

    を指しているようです。 hファイル。

    私はPATH(to/bin)に加えて、Project Properties>> Environment MINGW_HOMEを試してみました。 「ツールチェーンエディタ」はMingGWに言及し、GCC C++と述べていますが、実際にその意味を理解しておらず、使いやすいインターフェイスにはパスが示されていません。

    また、D:\ cygwin64 \ lib \ gcc \ x86_64-w64-mingw32 \ 4.8.3 \ includeをパス&シンボル>インクルードに追加しようとしましたが、それは役に立ちません。

    また、 "ライブラリと"ライブラリパス "がありますが、違いは何か(どちらもパスが必要です)はわかりませんが、これはリンクのためのものではなく、コンパイルしていると思います。編集中のC++はCDT自身で行われ、外部コンパイラに依存しません。

    CDTはどのようなヘッダファイルが適切であるかを判断しますか?一般的にCでは決めることはできません。含まれている.cppファイルから読み込まれた他のヘッダファイルに#includeディレクティブを無視して、衝突することがないように、すべてのヘッダファイルを読み込みます。

  • 答えて

    0

    私のハックは、それを正しく修正しようとするのに時間がかかりすぎて、ここに投稿がないと、次のようになります。

    #ifdef ECLIPSE 
    // Dummy declarations to help with misconfigured Eclispse 
        class string{}; 
        template <typename T> 
        class vector{ 
        public: 
         unsigned size(); 
         void push_back(T t); 
         T at(unsigned idx); 
        }; 
    #endif 
    

    はい、クラスが問題ないと思うようにEclipseをトリックしてください。私はこれを答えと呼ぶつもりはない。

    奇妙なことに、文字列のclass defは、日食を説得するのに十分であると思われ、char *へのキャストはOKです。

    (私は、何のSTDを使用していないと、これらのクラスにアクセスします:)

    0

    CDTは標準ライブラリが<string><vector>のように含んで解決できない場合は、これはそれがあなたのコンパイラを見つけることができないというサインです。

    コマンドプロンプトを開き、g++と入力します。それは発見されましたか?そうでない場合は、コンパイラを含むディレクトリが環境変数PATHにないことを意味します。このディレクトリ(D:\cygwin64\binのようなもの)をPATHに追加します(これは、Windowsのバージョンによって異なりますが、Computer | Properties | Advanced system settings | Environment variablesのようなものです)。その後、Eclipseを再起動してもう一度やり直してください。

    関連する問題