cscope解決找不到該檔案問題(File ../xxx/yyy.c不存在)
阿新 • • 發佈:2019-01-01
出錯情況:
之前一直在使用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()