Eclipse显示错误,但项目编译并执行

Eclipse shows error, but project compiles and executes

本文关键字:编译 执行 项目 显示 错误 Eclipse      更新时间:2023-10-16

我在一个Eclipse MARS C++项目中工作。尽管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;
}

错误:

  • 无法解析符号"duration"
  • 无法解析类型"std::milli"
  • 无法解析符号"ratio"
  • 无法解析符号"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++构建">"设置">"其他"上放置了-std=c++11

我已经把__GXX_EXPERIMENTAL_CXX0X__放在C/C++GENERAL上了>路径和符号>符号。

我已经清理并重建了它,关闭并重新打开了它(项目和eclipse),但什么都没发生。这是一个1文件的项目,Eclipse如何在其中找到8个错误并仍然编译和执行它?我想只是编辑在惹我。有人能帮我摆脱这些错误吗?

不要相信Eclipse、Visual Studio或任何其他IDE。他们用来在编辑器中为您提供"红色歪歪扭扭"的解析器是,而不是真正的编译器。它有不同的bug,有不同级别的标准遵从性,解析代码的时间非常少(因为它是交互式的)。它给出错误的结果。

编辑器中的解析器很好,很有用;方便的工具。但它们是而不是编译器本身,它们不应被解释为仅仅是有用的提示。