Eclipse显示带注释的错误,但成功构建

时间:2013-06-23 23:41:26

标签: eclipse compiler-construction raspberry-pi eclipse-cdt

我在Ubuntu 13.04上使用Eclipse Juno来开发raspberry pi。我按照本指南配置了交叉编译工具链:http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/

我在Rasberry pi上得到了我的hello world程序编译并正确运行,但Eclipse注释所有STL包括错误。

我尝试了什么:

  • 重建项目
  • 重建索引(索引 - >重建)

我猜我在配置中缺少一些路径,但我不确定是哪一个。我确实对谷歌进行了大量的研究,但我找不到任何具体的解决方案。

所以问题是,如何配置Eclipse以查看C ++ STL包含我的构建命令使用的路径? (臂-Linux的gnueabihf-G ++)

更新

我正在查看之前盲目复制粘贴的包含路径,并注意到其中一个应该指向C ++ STL,但在文件夹结构中没有足够深入。我通过将.../include更改为.../include/c++/4.7.2并修复了日食没有看到的STL来修复它。

但是现在我遇到了一个新问题:当我包含一个文件时,例如#include <string>,我不能使用字符串类型;它强调string的每个实例,并说Type 'string' could not be resolved. 但是如果我重新启动Eclipse,错误消失 ...直到我对代码进行任何更改,这会带来红线背部。而且,程序编译成功。

2 个答案:

答案 0 :(得分:0)

CDT有时可能非常反复无常。但是如果您的路径错误,程序将无法正常运行,因此您的编译器知道STL 。我在导入一些第三方库(源文件)时遇到了这种问题,并且切换包含的顺序修复了它。在你的情况下,它可能会更复杂......

如果您无法摆脱这些错误,您仍然可以禁用某些特定错误并将其转换为简单警告,但这会有点容易出错且危险:

Project > Properties > C/C++ General > Code Analysis > Use project settings > Switch the errors that are bugging you into warnings

祝你好运。

答案 1 :(得分:0)

所以似乎我的问题是通过简单地将C ++ STL的包含路径更改为其他内容然后再返回来修复的。

步骤:

  1. 找到STL的包含路径,并将其从.../include更改为.../include/c++/4.7.2
  2. 重启eclipse,你可能会注意到它现在已经部分工作了(我在问题中提到了一些奇怪的行为)
  3. .../include/c++/4.7.2更改回.../include
  4. 重启Eclipse,现在它应该正常工作。
相关问题