1

我有一个带有一些#include头文件说明的 C 文件。我知道当我用 gcc 编译 C 文件时,编译器.h会在环境变量中包含的路径中查找文件$CPATH。如何获取特定.h文件的绝对路径?(我更喜欢不编译就获取路径)

4

2 回答 2

1

如果您使用 -E 编译,您将获得预处理器输出,并且其中所有包含的文件都将具有其完整路径。例如,在下面,文件“文件”将包含预处理的输出:

gcc -E -o file file.c
于 2013-02-28T23:12:23.667 回答
0

这有点小技巧:

cpp -MD file.c | sed -n '/\.h"/s/.*"\(.*\)".*/\1/p' | sort -u

并且显然取决于cpp. (以上适用于 gnu cpp 3.4.6)这给出了所有包含文件的完整路径。通过另一个过滤器将其有趣,以将输出减少到您关心的特定标头。

于 2013-02-28T23:00:39.727 回答