在Makefile中使用Cscope生成符号索引文件

  大型项目的代码阅读,一般需要借助Source Insight之类的工具,帮助理解代码执行流程。Linux下使用Cscope工具生成符号索引,也可以很方便的阅读代码。U-Boot和Linux kernel一类的大型项目中,其Makefile脚本支持Cscope工具,可自动生成项目相关的符号索引。

1 $ make cscope

  Makefile文件内容如下:

# U-Boot 2017-03 Makefile
1
cscope: 2 $(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \ 3 cscope.files 4 cscope -b -q -k

  其作用是搜索编译相关路径,将目录中的'*.c',‘*.h','*.S'文件名记录在'cscope.file'里,并通过Cscope生成符号索引文件。

  

  在实际使用过程中,发现此命令尚有可改进的地方

# U-Boot 2017-03 Makefile
1
cscope: 2 $(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \ 3 -maxdepth 1 \ 4 -regextype posix-extended \ 5 -regex ".*\.(c|h|s|S|lds)" \ 6 -print > cscope.files 7 cscope -b -q -k

  1. 编译相关路径

    默认的find命令会搜索给定目录及其子目录,而这些子目录中的文件一般是不需要的。使用'-maxdepth 1'参数,限定搜索本级目录。

  2. 文件类型

    默认的文件名表达式只支持单字符结尾的文件类型,修改之后可添加'*.lds','*.cpp'等其它类型文件。

posted on 2017-03-29 14:39  从零到一  阅读(1021)  评论(0编辑  收藏  举报

导航