如上所述,缺省情况下,cscope 为当前目录中的 C、lex 和 yacc 源文件生成符号交叉引用表。即,
% cscope |
等效于:
% cscope *.[chly] |
我们还发现,您可以将选定的源文件的名称作为参数调用 cscope,以便浏览这些文件:
% cscope file1.c file2.c file3.h |
在指定交叉引用中包含的源文件方面,cscope 为命令行选项提供了更大的灵活性。当您使用 – s 选项和任意数目的目录名称(用逗号隔开)调用 cscope 时:
% cscope– s dir1,dir2,dir3 |
cscope 为指定目录以及当前目录中的所有源文件生成交叉引用。要遍历在文件中列出其名称的所有源文件(文件名用空格、制表符或换行符分隔),请使用 – i 选项和包含列表的文件的名称调用 cscope:
% cscope– i file |
如果源文件位于目录树中,请使用以下命令进行浏览:
% find .– name ’*.[chly]’– print | sort > file % cscope– i file |
但是,如果选择此选项,cscope 将忽略在命令行上出现的任何其他文件。
cscope 使用 –I 选项的方式和 cc 使用 –I 选项的方式相同。请参见2.16 如何指定 include 文件。
您可以通过调用 – f 选项,指定一个除缺省 cscope.out 之外的交叉引用文件。对于在同一目录中保存单独的符号交叉引用文件,这是很有用的。如果两个程序在同一目录中,但不共享所有相同文件,您可能需要这样做:
% cscope– f admin.ref admin.c common.c aux.c libs.c % cscope– f delta.ref delta.c common.c aux.c libs.c |
在本示例中,admin 和 delta 两个程序的源文件在同一目录中,但这两个程序由不同的文件组组成。通过在调用 cscope 时为每组源文件指定不同的符号交叉引用文件,可单独保存两个程序的交叉引用信息。
您可以使用 –pn 选项指定让 cscope 在列出搜索结果时显示文件的路径名或路径名的一部分。您为 – p 指定的数代表您要显示的路径名的最后 n 个元素。缺省值为 1,即文件本身的名称。因此,如果您的当前目录为 home/common,则命令:
% cscope– p2 |
使 cscope 在列出搜索结果时显示 common/file1.c、common/file2.c 等等。
如果要浏览的程序包含大量的源文件,可以使用 –b 选项,以便 cscope 在生成交叉引用后停止;cscope 不显示任务菜单。在流水线中使用 cscope -b 与 batch(1) 命令时,cscope 将在后台生成交叉引用:
% echo ’cscope -b’ | batch |
生成交叉引用后,只要其间未更改源文件或源文件列表,就只需指定:
% cscope |
用于要复制的交叉引用以及要以正常方式显示的任务菜单。如果希望无需等待 cscope 完成其初始处理即可继续工作,可以使用此命令序列。
-d 选项指示 cscope 不更新符号交叉引用。如果您确定未进行此类更改,则可以使用该选项以节省时间;cscope 不检查源文件是否更改。
使用 – d 选项时请小心。如果在错误地认为源文件尚未更改的情况下指定 -d,则在响应查询时 cscope 将引用过时的符号交叉引用。