为最简单的项目生成的Eclipse CDT构建未正确设置包含路径

时间:2016-03-28 23:58:31

标签: c++ eclipse

Eclipse:开普勒; CDT:8.3.0

我刚开始将Eclipse CDT用于C ++项目。我刚刚使用UI将一个新的空C ++类和相关的头文件自动添加到项目中。然后我按下构建按钮。构建失败。由于没有设置包含路径的简单问题,生成的Eclipse CDT生成脚本失败了:

Building file: ../Foo.cpp
Invoking: Cross G++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"Foo.d" -MT"Foo.d" -o "Foo.o" "../Foo.cpp"
../Foo.cpp:8:17: fatal error: Foo.h: No such file or directory
compilation terminated.
make: *** [Foo.o] Error 1

它在子目录Debug/中构建(这是默认的构建配置CDT设置)。如果我进入Debug/目录并添加" -I ../"它上面的g++命令有效。 Eclipse CDT创建的构建脚本无法找到为我初始化的CDT源文件。为什么这会失败?看起来真的很傻。我该如何解决?

1 个答案:

答案 0 :(得分:1)

要看几件事可能是原因:

  1. 确保您使用#include "Foo.h"而非#include <Foo.h>,引号与括号。
  2. 尝试删除.h中的#include "Foo"
  3. 确保您的.h文件位于src文件夹中,而不在其中。既然你说你必须将-I ../添加到Debug,那么这很可能就是你的问题。 Foo.h文件位于项目.h文件的其余部分所在的文件夹之外。
  4. 检查Eclipse是否自动创建Makefile,而不是期望您生成它。这很可能不是你的情况。
  5. 很可能是错过了一些简单的东西。我经常在Eclipse中遇到这些小问题。

    修改

    从您的评论中,#1是解决您问题的方法。如果Eclipse在为类创建#include <Foo.h>#include "Foo.h"时自动生成.h而不是.cpp,则这是Eclipse的错误。