问题描述
使用cscope进行代码跳转时,会出现cscope: cannot find file XXX的错误。
解决方案
由于cscope生成数据库时默认使用相对路径,因此会出现以上情况。解决办法是手动生成一个cscope.files文件,指定好文件的绝对路径。cscope命令会根据cscope.files中指定的文件,生成符号索引文件。因此在生成cscope.files时,将所有文件以绝对路径的形式呈现,即能解决cscope跳转时找不到文件的问题。
find `pwd` -name *.c -o -name *.h > cscope.files
之后再生成cscope数据库:
cscope -Rbkq
-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录