即使在声明包含路径之后,CDT也没有正确找到Cygwin gcc包含文件

时间:2012-08-22 18:12:51

标签: cygwin eclipse-cdt

我有一个相当尴尬的问题,因为这个问题在Linux机器和我的Windows XP机器上都没有问题。但是现在,在最终切换到Windows 7 64bit之后,我遇到了让Eclipse找到我的C ++包含文件的基本问题......

我的设置:
我正在运行Windows 7 64位。我已经将cygwin安装到“C:\ Program Files \ cygwin”,将Eclipse Juno 64bit安装到“C:\ Program Files \ eclipse”。

我的问题:
我用Cygwin工具链创建了一个基本的“Hello World”C ++ Makefile项目。编译工作没有问题,但Eclipse仍然抱怨它无法找到“iostream”的包含。

我尝试了什么:
在项目属性中 - > C / C ++一般 - >路径和符号 - >包括,我将GNU C和GNU C ++的Include目录设置为

C:\Program Files\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\include

包含iostream包含在子目录中。 这不起作用

然后我尝试了确切的目录

C:\Program Files\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\include\C++

包含iostream。这次发现了包含,但即使在重建索引之后,Eclipse仍然无法解析std,cout和endl。然后我尝试了3.x版本的gcc

的include目录
C:\Program Files\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include\C++

它有效。不幸的是,我需要4.x版本的gcc,所以这对我来说不是永久的解决方案。

我的问题:
我怎样才能解决这个问题,让Eclipse找到gcc 4.x包含目录并正确使用它们?

1 个答案:

答案 0 :(得分:2)

您必须使Eclipse“忘记”并重新发现编译器的include目录,而不是更改特定于项目的更改。通过 Windows |执行此操作偏好| C / C ++ |建立|设置;你需要清除gcc的'Discovery'条目。

另见this question