我希望打印
gcc
使用的特定头文件的绝对路径列表,而无需编译任何内容(或指定特定的编译目标,如使用gcc -M
)。例如,以下内容将打印在适当目录中找到的all 与
limits.h
匹配的绝对路径列表:
gcc <flag/command> limits.h
仅返回 working 头文件的(非)解决方案是简单地创建一个 check.c
,其中
#include
所有所需的头名称,然后运行
gcc -M check.c
。在这个答案
和这里找到了另一个解决方案(尽管使用了bash东西)。
不太有我想要的相关问题:
gcc -print-file-name=libc.a
以奇怪的形式打印绝对路径
和一些shell脚本来做你想做的事;例如:
$ gcc -xc -E -v - < /dev/null 2>&1 |
sed -n '/#include <...>/,/End of search list/ {/#include/d; /End/d; p};' |
xargs -IPATH find PATH -name limits.h
/usr/lib/gcc/x86_64-redhat-linux/14/include/limits.h
/usr/include/c++/14/tr1/limits.h
/usr/include/linux/limits.h
/usr/include/limits.h