你应该做什么取决于你的目标,我不太明白。如果您正在创建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
沿如果你喜欢随着xyz
在pqr
两行(stdio.h
和stdlib.h
)和两行(/usr/include/
/usr/lib/
和)一起使用。),该命令需要0.7秒我的系统中,以产生输出
/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系统上,文件名数据库每天更新一次。这在查找系统头文件时可能不会有问题。对于更短暂的文件,在使用locate
之前,您可能需要说sudo updatedb
,并且这会在整个时间内增加几秒到几分钟的时间。
感谢您的评论,lynxlynxlynx,它帮助了很多。我会尽力按照你的建议=) – petajamaja