你应该做什么取决于你的目标,我不太明白。make
如果您正在创建文件,您可能应该使用 makedepend,如前面的答案中所述。
相反,如果您想了解系统上是否有多个版本的头文件,请考虑使用该locate
命令。例如,在我的 ubuntu 12.04 linux 系统上,以下命令大约需要一秒钟才能完成,并产生命令下方所示的输出。
$ locate stdio.h | grep usr/include
/usr/include/stdio.h
/usr/include/c++/4.6/tr1/stdio.h
/usr/include/glib-2.0/glib/gstdio.h
/usr/include/sharutils/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
如果您在文件 pqr 的单独行上有一个库路径列表,并且在文件 xyz 中有一个头文件列表,则可以使用类似的命令
locate / | grep -f xyz | grep -f pqr
(注意,如果您愿意,-F
可以与-f
stdio.h
stdlib.h
xyz
/usr/include/
/usr/lib/
pqr
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/c++/4.6/tr1/stdio.h
/usr/include/c++/4.6/tr1/stdlib.h
/usr/include/freetype2/freetype/config/ftstdlib.h
/usr/include/glib-2.0/glib/gstdio.h
/usr/include/sharutils/stdio.h
/usr/include/sharutils/stdlib.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdlib.h
/usr/lib/perl/5.14.2/CORE/nostdio.h
/usr/lib/syslinux/com32/include/stdio.h
/usr/lib/syslinux/com32/include/stdlib.h
注意,在典型的 linux 系统上,文件名数据库每天更新一次。在查找系统头文件时,这可能不会成为问题。对于更短暂的文件,您可能需要sudo updatedb
在使用之前说一下locate
,这会使总时间增加几秒钟到几分钟。