cscope解决找不到该文件问题(File ../xxx/yyy.c不存在)

出错情况:

之前一直在使用cscope来阅读源码,期间碰到过找到了函数/变量定义,却跳转不过去的情况,提示”File ../xxxx/yyyy.c”不存在之类的错误。

解决方法:

出现该问题的原因是当我们使用cscope -Rbq生成cscope.out文件时,使用的是相对路径。解决的思路也很简单,生成时使用绝对路径即可。cscope官方提供了一个解决方案:使用cscope.files文件来生成cscope.out文件即可。

cscope.files存的内容是需要建立索引的所有文件名。像这样:
cscope解决找不到该文件问题(File ../xxx/yyy.c不存在)_第1张图片
至于如何生成该文件,最简单的方法就是使用find命令将所有符合条件的文件列出,重定向到cscope.files中。例如find ./ -name *.c >> cscope.files。当然,也可以写一个简单的shell或者python脚本来生成(末尾提供python脚本源码,在需要生成cscope.files的目录下执行即可)。

有了cscope.files之后,我们运行cscope -bqk即可。这样相对路径的问题就解决了。

简易python脚本:

#!/bin/python

import os

save_file = open("cscope.files", 'w')

for root, dirs, list in os.walk("./"):
    for i in list:
        cur_path = os.path.abspath(root)
        file_path = cur_path + '/' + i

        save_file.write(file_path+'\n')

save_file.close()

你可能感兴趣的:(使用工具遇到的小问题)