2014-04-29 22 views
1

我遇到了一些令人讨厌的错误,其中一个头文件被包含在不同的链接中(即stdio.h和withounoun“extern C”)。 所以,我需要找到一个特定的头文件包含在哪里。如何找到包含头的地址

我知道doxygen,但不幸的是我感兴趣的头文件是stdio.h,它也包含在Qt中。 所以唯一的方法(我熟悉)使用doxygen - 是扫描整个Qt文件夹。这可能需要永远。

那么,是否有可能找出包含一个标题的地方,而不绘制包含项目中每个标题的图表?或者有其他解决方法吗?

+2

您可以尝试gcc -E预处理文件并查看头文件的来源;或者您可以在头文件所在的位置搜索-Ipath。 – Mine

+0

谢谢!这确实是一种可能的方式,虽然不像图 – Amomum

+0

那样生动@我可以让你的评论成为答案,我可以接受吗? – Amomum

回答

2

您可以尝试gcc -E预处理该文件并查看头文件的来源;

或者您可以在头文件所在的位置搜索您的-Ipath

0

我会用grep:

grep --color --binary-files=without-match -R -n -i "stdio.h" *

,将递归搜索了一棵树,为检查每stdio.h中的文本文件,打印每个匹配的文件名和行号发现。

+0

我在窗户上,所以这不完全是我的答案:) – Amomum

+1

我也是。有许多Windows的grep端口。 Cygwin运行良好,并且还提供了bash和其他一些工具。此外,内置的Windows资源管理器搜索将在索引位置的文件内进行字符串搜索。 –