gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 05:45:40 28 4
gpt4 key购买 nike

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. 确保您使用的是 #include "Foo.h"而不是 #include <Foo.h> , 引号与括号。
  2. 尝试删除 .h#include "Foo" .
  3. 确保您的 .h文件在 src 中文件夹而不是它之外。既然你说你必须添加 -I ../Debug这很可能是你的问题。 Foo.h文件位于项目其余部分 .h 所在的文件夹之外文件是。
  4. 检查 Eclipse 是否自动创建 Makefile 而不是期望您生成它。这很可能不是你的情况。

很可能是漏掉了一些简单的东西。我经常在 Eclipse 中遇到这些小问题。

编辑

根据您的评论,#1 是您问题的解决方案。如果 Eclipse 自动生成 #include <Foo.h>而不是 #include "Foo.h"当它同时创建 .h 时和 .cpp对于一个类,这是 Eclipse 的一个错误。

关于c++ - 为最简单的项目生成的 Eclipse CDT 构建未正确设置包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273197/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com