xxx.h:致命错误 C1083:无法打开包含文件:'yyyy.h':没有这样的文件或目录

Posted

技术标签:

【中文标题】xxx.h:致命错误 C1083:无法打开包含文件:\'yyyy.h\':没有这样的文件或目录【英文标题】:xxx.h: fatal error C1083: Cannot open include file: 'yyyy.h': No such file or directoryxxx.h:致命错误 C1083:无法打开包含文件:'yyyy.h':没有这样的文件或目录 【发布时间】:2012-07-10 17:07:55 【问题描述】:

我正在处理一个 c 项目,我需要在其中包含一个头文件,该头文件几乎没有其他头文件。当我试图编译时,编译器也在寻找我正在使用的头文件中包含的头文件。

更清楚地说,我需要在我当前的程序中使用xxx.h 文件,它对我来说只有一个有用的功能。但是xxx.h 文件中包含其他一些yyy.h。 编译时出现以下错误:

xxx.h:致命错误 C1083:无法打开包含文件:yyy.h:没有这样的文件或目录

任何人都可以建议我一种方法来包含xxx.h 文件并使用我需要的唯一一个功能,将yyy.h 包含到我当前的项目中?

【问题讨论】:

您需要修改项目的包含路径。如何做到这一点取决于您的编译器:从错误消息的格式来看,您似乎正在使用一些 MSVS 变体。查看有关如何修改包含路径以包含 yyy.h 路径的文档 我正在使用 VS2008。我有 yyy.h 之类的 20 左右的头文件,其中我不知道路径。这是一个庞大的项目,其中包含大约 50 个项目文件。 最坏的情况,您可以将需要的一个声明复制到您自己的代码中。 那么我建议你找出你真正需要的 20 个文件中的哪一个,然后将你的编译器指向该目录或更改你的 xxx.h 头文件以将其包含在路径中。 【参考方案1】:

使用#ifdef 块来防止包含不需要的标头。

假设你需要一个函数的原型,除此之外你不需要任何东西。然后:

#ifndef MY_APP
#include <notneeded1.h>
#include <notneeded2.h>
.............
.............
#endif
#ifdef MY_APP
void my_needed_foo_bar()
#endif

#ifndef MY_APP
.....
#endif

现在通过定义 MY_APP 来编译您的应用

和 gcc 一样

$gcc -DMY_APP ....

【讨论】:

以上是关于xxx.h:致命错误 C1083:无法打开包含文件:'yyyy.h':没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

致命错误 C1083:无法打开包含文件:“openssl/opensslv.h”

致命错误 C1083:无法打开包含文件:'atlbase.h' Pyinsane 包 [重复]

VC6:致命错误 C1083:无法打开包含文件:“stdint.h”

收到“致命错误 C1083:无法打开包含文件:'gxall.h':没有这样的文件或目录”[重复]

致命错误 C1083:无法打开包含文件:'boost/regex.hpp':没有这样的文件或目录

无法在 Windows 中安装 pycocotools:致命错误 C1083:无法打开包含文件:'io.h':没有此类文件或目录错误: