我希望能够在编译时看到实际包含哪个 header 。例如,我有两个非常不同的 check.h 文件(一个是 linux-header 的东西,另一个来自单元测试系统)。
gcc 或某些语言命令/宏中是否有设置可以显示头文件的包含位置?
最佳答案
您可以使用-E
标志。
gcc -E source.c
这将向您显示“带注释”的预处理源,包括使用 <>
包含的 header 的绝对路径以及使用 ""
包含的 header 的相对路径。请记住,这将是一个漫长的过程,特别是如果您包含大量系统 header (其中又包括特定于实现的 header 等)。
使用 grep,您可以通过以下方式过滤这些结果:
gcc -E source.c | grep '^# 1 '
# n
是一个注释,描述当前包含的文件的行号,它始终是 # 1
在文件的开头。
关于c - 如何查看 #include 包含的 header 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962020/