0

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

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

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

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

4

1 回答 1

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 ....
于 2012-07-10T17:32:16.627 回答