Eclipse C++包含错误:没有这个文件或目录。

10

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

对于以下这行代码,有一个特别令人烦恼的错误信息:

#include "somedir/somefile.h"

somedir/somefile.h: No such file or directory

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

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

然而,这似乎并不能解决问题。

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

编辑:已解决问题。原来只是一个简单的问题。我需要“刷新”工作区中的所有项目。


这个解决方案对我有效:https://dev59.com/6G3Xa4cB1Zd3GeqPbBxf#14614594 - user13107
2个回答

13

为什么使用这么旧的版本?Eclipse CDT的新版本已经做了很大的改进。

这是一个非常显然的问题,但在项目 > 属性 > C/C++通用 > 路径和符号 > 包含(至少在当前CDT中)下,每种语言(汇编、C 和 C++)都有单独的分类。您是否确保在 C 和 C++ (如果适用)下都添加了 /opt/local/project/include?

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

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


检查一下,确保您正在构建一个单独的Makefile项目。我的错误信息相同,但非常愚蠢:我导入了位于多个Makefile项目的父目录中的Eclipse项目,导致一切混乱。正如Josh所说,Eclipse可能会自动检测到错误的包含目录集合。 - Patrizio Bertoni
遇到相同的问题make all 正在构建文件:../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’的配方失败 制作:*** [swap.o] 错误1构建完成在我的cpp中#include "boost/process/process.hpp"--我在项目根目录中有boost文件夹 - user482963
@user482963 - 如果您还没有尝试过命令行构建,请确保它能够正常工作。不幸的是,通过注释来诊断此类问题可能会很困难;如果您能够提供一个MCVE(最小完整可验证示例),您可以尝试提出一个新的问题,或者您也可以尝试使用聊天功能。 - Josh Kelley

2

在项目上右键点击 -> 索引 -> 刷新所有文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接