包含的路径解析
是否有明确的方法来查看给定的 #include
解析到的位置?我的代码中有一个 #include
,但我不知道正在使用哪个 unistd.h
。
Is there a definitive way to see where a given #include <example.h>
resolves to? I have a #include <linux/unistd.h>
in my code but I don't know which unistd.h
is being used.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 -E 命令行选项来获取预处理器输出,它将告诉您包含的每个头文件的完整路径,包括其他头文件包含的文件。例如:
因此,在本例中,使用的标头是
/usr/include/unistd.h
。If you use the
-E
command line option to get the preprocessor output, it will tell you the full path to every header file included, including those included by other headers. For example:So in this case, the header that's being used is
/usr/include/unistd.h
.从 GCC 文档,
因此,除非您添加 -I (大写字母,而不是 ell)开关,否则包含的版本是在包含它的第一个目录中找到的版本。
From the GCC documentation,
So unless you're adding the -I (capital eye, not ell) switch, the version included is the version found in the first of those directories that holds it.