2011-08-08 33 views
4

我们常常会遇到这样的问题,象下面这样:如何快速调试C++包含文件的问题

1>Compiling... 
1>a.cpp 
1>c:\apps\b.h(22) : fatal error C1083: Cannot open include file: 'boost/shared_ptr.hpp': No such file or directory 

有时也可能是乏味的,因为一个多包括的文件,甚至嵌套包括在一个大的项目文件。

跟踪/哪个包含文件的最佳方式是包含有问题的包含文件的罪魁祸首(父)是什么?

问题是它嵌套了include,所以在能够判断哪个文件包含b.h之前需要花费一些努力。

+3

尔使用一个免费的工具,是什么?你读过那个错误了吗?它明确指出包含发生的地方。 –

+0

一种方法是确保文件在第一位。如果你安装了一个库,应该没有理由为什么某些包含文件应该丢失。 –

回答

0

Autotools具有此功能。你可以检查某些头文件是否存在..我相信其他构建工具具有类似的功能...

3

看起来像你在Windows上(因此可能使用Microsoft C/C++编译器)。在这种情况下,您可以使用/showIncludes选项。另请参阅此SO answer

这可以让你“可视”地看到哪个头文件包含哪些,给你更多的信息。

更新:显然GCC有some similar options