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 为我初始化的源文件。为什么会失败?看起来真的很傻。我该如何解决?
最佳答案
可能是原因:
- 确保您使用的是
#include "Foo.h"
而不是#include <Foo.h>
, 引号与括号。 - 尝试删除
.h
如#include "Foo"
. - 确保您的
.h
文件在src
中文件夹而不是它之外。既然你说你必须添加-I ../
至Debug
这很可能是你的问题。Foo.h
文件位于项目其余部分.h
所在的文件夹之外文件是。 - 检查 Eclipse 是否自动创建 Makefile 而不是期望您生成它。这很可能不是你的情况。
很可能是漏掉了一些简单的东西。我经常在 Eclipse 中遇到这些小问题。
编辑
根据您的评论,#1 是您问题的解决方案。如果 Eclipse 自动生成 #include <Foo.h>
而不是 #include "Foo.h"
当它同时创建 .h
时和 .cpp
对于一个类,这是 Eclipse 的一个错误。
关于c++ - 为最简单的项目生成的 Eclipse CDT 构建未正确设置包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273197/