2016-04-12 16 views
1

私はEclipse MARS C++プロジェクトで作業しています。 Eclipseが何らかのエラーを表示しているのに、次のコードは完全にコンパイルして実行します。Eclipseはエラーを表示しますが、プロジェクトはコンパイルして実行します

コード:

#include <iostream> 
#include <ratio> 
#include <chrono> 

using namespace std; 

int main() 
{ 
    typedef std::chrono::duration<int> seconds_type; 
    typedef std::chrono::duration<int,std::milli> milliseconds_type; 
    typedef std::chrono::duration<int,std::ratio<60*60>> hours_type; 

    hours_type h_oneday (24); 
    seconds_type s_oneday (60*60*24); 
    milliseconds_type ms_oneday (s_oneday); 

    seconds_type s_onehour (60*60); 
    hours_type h_onehour (std::chrono::duration_cast<hours_type>(s_onehour)); 
    milliseconds_type ms_onehour (s_onehour); 

    std::cout << ms_onehour.count() << "ms in 1h" << std::endl; 
} 

エラー:

  • シンボル '期間は' を解決することができませんでした。
  • タイプ 'std :: milli'を解決できませんでした。
  • シンボル '比率'を解決できませんでした。
  • シンボル 'duration_cast'を解決できませんでした。
  • メソッド 'count'を解決できませんでした。
  • 'std :: endl'の無効なオーバーロードがあります。

私はすべてのエラーが含まれていると思います。

建物のメッセージ:

Invoking: Cross G++ Compiler 
g++ -D__GXX_EXPERIMENTAL_CXX0X__ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++11 -MMD -MP -MF"src/Teste.d" -MT"src/Teste.o" -o "src/Teste.o" "../src/Teste.cpp" 
Finished building: ../src/Teste.cpp 

Building target: Teste 
Invoking: Cross G++ Linker 
g++ -o "Teste" ./src/Teste.o 
Finished building target: Teste 

は、私はすでにプロジェクト]> [プロパティ]> [C/C++ BUILD]> [設定]>雑に-std=c++11を入れています。

私は既に__GXX_EXPERIMENTAL_CXX0X__をC/C++の一般的な>パット記号とシンボル>記号に入れました。

私はすでにそれをきれいにして再構築し、閉じて再オープンしましたが(プロジェクトとEclipse)、何も起こりません。これは1つのファイルプロジェクトですが、Eclipseはどのようにして8つのエラーを見つけてコンパイルして実行できますか?私はそのエディタだけが私を乱していると思う。誰も私がエラーから解放されるのを助けることができますか?

+0

実際のコンパイラエラーが発生していますか、それとも行/変数が何らかの形で強調表示されている他のIDEと似ていますか? – NathanOliver

+0

コンパイルエラーではありません。それは、IDEに不満があるだけです。 – user3785008

+0

定数変数が変更されない場合は、 'const unsigned int hours_per_day = 24;'のように型に 'const'を接頭辞として付ける必要があります。 –

答えて

0

EclipseやVisual StudioなどのIDEを信頼しないでください。エディタであなたに "赤い塊"を与えるのに使うパーサーはではなく、実際のコンパイラです。それは異なったバグを持っています、それは標準コンプライアンスの異なるレベルを持っています、あなたのコードを解析する時間(対話型なので)は少しです。 は偽の結果を返します。

「エディタ内」のパーサーは便利な便利なツール&です。しかし、彼らはではなく、コンパイラ固有であり、有用なヒント以上のものとして解釈されるべきではありません。

+0

よろしくお願いします。 しかし、私が前に言ったように、私は自分のコードが間違っていることを心配していません。それは明らかに正しいです。私はIDEにコードの正確さを理解させるための解決策を探しています。 – user3785008

関連する問題