GCC 的标头绝对路径

问题描述 投票:0回答:1

我希望打印

gcc
使用的特定头文件的绝对路径列表,而无需编译任何内容(或指定特定的编译目标,如使用gcc -M
)。例如,以下内容将打印在适当目录中找到的 
alllimits.h
 匹配的绝对路径列表:

gcc <flag/command> limits.h
仅返回 

working 头文件的(非)解决方案是简单地创建一个 check.c

,其中 
#include
 所有所需的头名称,然后运行 
gcc -M check.c

在这个答案

这里找到了另一个解决方案(尽管使用了bash东西)。

不太有我想要的相关问题:

    如何查看 #include 包含的标头的位置?
  • gcc 在哪里寻找 C 和 C++ 头文件?
  • 如何通过库名找到库的文件名?
  • 如何找到给定库名称(如 libfoo.so.1)的完整文件路径?
  • gcc -print-file-name=libc.a以奇怪的形式打印绝对路径
    
    
gcc header-files
1个回答
0
投票
这个答案

和一些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

	
© www.soinside.com 2019 - 2024. All rights reserved.