1. 程式人生 > >cscope解決找不到該檔案問題(File ../xxx/yyy.c不存在)

cscope解決找不到該檔案問題(File ../xxx/yyy.c不存在)

出錯情況:

之前一直在使用cscope來閱讀原始碼,期間碰到過找到了函式/變數定義,卻跳轉不過去的情況,提示”File ../xxxx/yyyy.c”不存在之類的錯誤。

解決方法:

出現該問題的原因是當我們使用cscope -Rbq生成cscope.out檔案時,使用的是相對路徑。解決的思路也很簡單,生成時使用絕對路徑即可。cscope官方提供了一個解決方案:使用cscope.files檔案來生成cscope.out檔案即可。

cscope.files存的內容是需要建立索引的所有檔名。像這樣:
這裡寫圖片描述
至於如何生成該檔案,最簡單的方法就是使用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()