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源文件。为什么这会失败?看起来真的很傻。我该如何解决?
答案 0 :(得分:1)
要看几件事可能是原因:
#include "Foo.h"
而非#include <Foo.h>
,引号与括号。.h
中的#include "Foo"
。.h
文件位于src
文件夹中,而不在其中。既然你说你必须将-I ../
添加到Debug
,那么这很可能就是你的问题。 Foo.h
文件位于项目.h
文件的其余部分所在的文件夹之外。很可能是错过了一些简单的东西。我经常在Eclipse中遇到这些小问题。
从您的评论中,#1是解决您问题的方法。如果Eclipse在为类创建#include <Foo.h>
和#include "Foo.h"
时自动生成.h
而不是.cpp
,则这是Eclipse的错误。