Sun Studio 12:C 用户指南

8.2.5 命令行选项

如上所述,缺省情况下,cscope 为当前目录中的 C、lex 和源文件生成符号交叉引用表。即,


% 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.14 如何指定 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

在本示例中,admindelta 两个程序的源文件在同一目录中,但这两个程序由不同的文件组组成。通过在调用 cscope 时为每组源文件指定不同的符号交叉引用文件,可单独保存两个程序的交叉引用信息。

您可以使用 – pn 选项指定让 cscope 在列出搜索结果时显示文件的路径名或路径名的一部分。您为 – p 指定的数代表您要显示的路径名的最后 n 个元素。缺省值为 1,即文件本身的名称。因此,如果您的当前目录为 home/common,则命令:


% cscope– p2

使 cscope 在列出搜索结果时显示 common/file1.ccommon/file2.c 等等。

如果要浏览的程序包含大量的源文件,可以使用 – b 选项,以便 cscope 在生成交叉引用后停止;cscope 不显示任务菜单。在流水线中使用 cscope– bbatch(1) 命令时,cscope 将在后台生成交叉引用:


% echo ’cscope -b’ | batch

生成交叉引用后,只要其间未更改源文件或源文件列表,就只需指定:


% cscope

用于要复制的交叉引用以及要以正常方式显示的任务菜单。如果希望无需等待 cscope 完成其初始处理即可继续工作,可以使用此命令序列。

– d 选项指示 cscope 不更新符号交叉引用。如果您确定未进行此类更改,则可以使用该选项以节省时间;cscope 不检查源文件是否更改。


注 –

使用 – d 选项时请小心。如果在错误地认为源文件尚未更改的情况下指定 – d,则在响应查询时 cscope 将引用过时的符号交叉引用。


有关其他命令行选项,请查看 cscope(1) 手册页