我有一个C文件,其中包含一些#include
头文件说明。我知道当我用gcc编译C文件时,编译器会在环境变量.h
中包含的路径中查找$CPATH
个文件。如何获取特定.h
文件的绝对路径? (我更喜欢没有编译的路径)
答案 0 :(得分:1)
如果使用-E进行编译,您将获得预处理器输出,并且所有包含的文件都将具有完整路径。例如,在下文中,文件'file'将包含预处理的输出:
gcc -E -o file file.c
答案 1 :(得分:0)
这有点像黑客:
cpp -MD file.c | sed -n '/\.h"/s/.*"\(.*\)".*/\1/p' | sort -u
显然取决于cpp
的输出格式。 (以上适用于gnu cpp 3.4.6)
这给出了所有包含文件的完整路径。通过另一个过滤器来娱乐它,以减少输出到你关心的特定标题。