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

C++ xxx.h:致命错误C1083:无法打开包含文件:';yyyy.h';:没有这样的文件或目录,c++,c,visual-c++,C++,C,Visual C++,我正在处理一个c项目,在这个项目中,我需要包含一个头文件,它几乎没有其他头文件。当我试图编译时,编译器也在寻找包含在我使用的头文件中的头文件 更清楚地说,我需要在我当前的程序中使用xxx.h文件,它对我来说只有一个有用的功能。但是xxx.h文件中包含了一些其他的yyy.h。 当我编译时,我有以下错误: xxx.h:致命错误C1083:无法打开包含文件:yyy.h:没有此类文件或目录 任何人都可以向我建议一种方法,包括xxx.h文件,并使用我需要的唯一一个函数,将yyy.h包含到我的当前项目中?使

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

更清楚地说,我需要在我当前的程序中使用
xxx.h
文件,它对我来说只有一个有用的功能。但是
xxx.h
文件中包含了一些其他的
yyy.h

当我编译时,我有以下错误:

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

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

使用
#ifdef
块,以防止包含不需要的标题

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

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

#ifndef MY_APP
.....
#endif

您需要修改项目的包含路径。如何做到这一点取决于您的编译器:从错误消息的格式来看,您似乎正在使用某种MSV变体。查看有关如何使用VS2008修改include路径以包含yyy.hI am路径的文档。我有大约20个类似yyy.h的头文件,我不知道它们的路径。这是一个巨大的项目,其中包含了大约50个项目文件。最糟糕的情况是,你可以将你需要的一个声明复制到你自己的代码中。然后我建议你找出你真正需要的20个文件中的哪一个,并将你的编译器指向该目录,或者更改你的xxx.h头以包含一个路径。
$gcc -DMY_APP ....