【问题标题】:Eclipse C++ include error: no such file or directoryEclipse C++ 包含错误:没有这样的文件或目录
【发布时间】:2011-03-29 14:15:39
【问题描述】:

我已经将一个 C++ 项目加载到 Eclipse (Europa) 中,并且我正在熟悉 CDT 界面。

以下行有一条特别烦人的错误消息:

#include "somedir/somefile.h"

somedir/somefile.h:没有这样的文件或目录

包含文件存在于“/opt/local/project/include/somedir/somefile.h”中。

Project > Properties > C/C++ General > Paths and Symbols > Includes下,我已经添加了包含目录“/opt/local/project/include”。

但是,这似乎并不能解决问题。

有谁知道如何处理这个错误? 谢谢。

编辑: 解决了这个问题。原来这是一个简单的问题。我不得不“刷新”工作区中的所有项目。

【问题讨论】:

标签: c++ c eclipse include eclipse-cdt


【解决方案1】:

为什么会有这么旧的版本?较新版本的 Eclipse CDT 已做出巨大改进。

这是一个非常明显的问题,但在 Project > Properties > C/C++ General > Paths and Symbols > Includes(至少在当前 CDT 中)下,每种语言(汇编、C 和 C++)都有单独的类别.您是否确保在 C 和 C++ 下都添加了 /opt/local/project/include(如果适用)?

或者,如果您的项目是使用 Make 构建的,那么简单地从 Eclipse 中构建您的项目通常会让 Eclipse 使用 Make 的输出自动检测包含目录,而无需您自己设置包含路径。

如果路径都设置正确,那么与索引相关的问题的标准修复方法是右键单击您的项目,选择索引,然后选择重建。

【讨论】:

  • 也检查一下,如果您实际上是在构建单个 Makefile 项目。我的错误导致了同样的消息,但非常愚蠢:我导入了一个位于多个 Makefile 项目的父目录中的 Eclipse 项目,但一切都搞砸了。正如Josh 所说,Eclipse 可能自动检测到一组错误的包含目录。
  • 有同样的问题使所有构建文件:../swap.cpp 调用:GCC C++ 编译器 g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"swap .d" -MT"swap.d" -o "swap.o" "../swap.cpp" 在来自 ../swap.cpp:5:0: ../boost/process/process.hpp 的文件中:12:36:致命错误:boost/process/config.hpp:没有这样的文件或目录编译终止。 subdir.mk:18: 目标'swap.o'的配方失败 make: *** [swap.o] Error 1 **** Build Finished **** in my cpp #include "boost/process/process.hpp " -- 我在项目根目录中有 boost 文件夹
  • @user482963 - 如果您还没有,请确保命令行构建工作正常。不幸的是,通过 cmets 可能很难诊断出这样的问题。您可以尝试一个新问题,如果您可以将 MCVE(最小、完整、可验证示例)放在一起,或者您可以尝试聊天。
【解决方案2】:

右键项目->索引->刷新所有文件。

【讨论】:

    猜你喜欢
    • 2014-06-22
    • 2012-08-05
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2013-03-13
    • 2021-10-31
    相关资源
    最近更新 更多