Linux下閱讀源代碼工具安裝
綜合他們多篇博客,做一個自己的總結(從0開始,記錄過程)
系統:ubuntu 16.04 vim:7.4.1689
內容來源:
https://www.cnblogs.com/wangzhe1635/p/9025711.html
https://blog.csdn.net/niepangu/article/details/52888116
https://blog.csdn.net/limanjihe/article/details/49994247
關於 ctags、cscope、taglist這個三個工具的安裝和使用。
一.ctags
1.安裝(apt-get或下載源碼)
命令安裝: $ sudo apt-get install ctags 源碼安裝: 下載:https://sourceforge.net/projects/ctags/files/ctags/5.8/ctags-5.8.tar.gz
或官網http://ctags.sourceforge.net/中查找需要的版本。 $ ./configure $ make $ make install
上述任選1裝完成之後查看版本:$ ctags --version
我使用apt-get安裝版本如下:
使用:
1.進入源代碼目錄,命令行輸入如下命令,會在當前目錄下產生一個新的文件tags。 $ ctags -R (定位標記對象)(-R”表示遞歸創建,也就包括源代碼根目錄(當前目錄)下的所有子目錄。“”表示所有文件。) 2.基本使用方法: $ vi –t function_name (命令行輸入後可直接跳轉到函數位置) 在vim打開的文件中跳轉(命令模式): :tag func_name (跳到函數func_name位置,然後Tab鍵匹配查找,上下切換) :ts (tags list 查看所有函數名為xx的定義位置) :tp (tags preview) :tn (tags next) :tag (查看指定函數的多個定義) :tnext (跳到第一個定義處,優先跳轉到當前文件) :tfirst (跳到第一個) :[count]tprevious (跳到前count個) :[count]tnext (跳到後count個) :tlast (跳到最後一個) :tselect tagname (你也可以在所有tagname中選擇) :tag / (然後按Tab來選擇跳轉標簽) :tselect /^write_ (匹配查找以write開頭的所有定義或變量,$表示末尾,^表示開頭。第二個參數可替換成任意內容) 光標放在函數上: Ctrl + ] 從調用位置可以跳轉到函數的定義處 CTRL + T 跳到上一層,可連續跳轉。 Ctrl + o 或者 Ctrl + t 回到初始位置
補充:
“$ ctags –R ”:“-R”表示遞歸創建,也就包括源代碼根目錄(當前目錄)下的所有子目錄。“”表示所有文件。這條命令會在當前目錄下產生一個“tags”文件,當用戶在當前目錄中運行vi時,會自動載入此tags文件。
Tags文件中包括這些對象的列表:
用#define定義的宏 枚舉型變量的值 函數的定義、原型和聲明 名字空間(namespace) 類型定義(typedefs) 變量(包括定義和聲明) 類(class)、結構(struct)、枚舉類型(enum)和聯合(union) 類、結構和聯合中成員變量或函數 VIM用這個“tags”文件來定位上面這些做了標記的對象。
二.cscope
命令安裝:
$ sudo apt-get install cscope
源碼安裝:
官網:http://sourceforge.net/projects/cscope/files/
使用方法:
在終端下,切換到源碼所在目錄後,輸入命令:cscope -Rbkq
參數意義:R 表示把所有子目錄裏的文件建立索引
b 表示僅建立符號數據庫,不啟動自帶的用戶界面
k 表示在生成索引時,不搜索/usr/include/目錄
q 表示生成cscope.in.out 和 cscope.po.out文件,加快cscope的索引速度
完成後將在當前目錄生成這麽幾個文件:cscope.in.out 、cscope.po.out 和 cscope.out
Linux下閱讀源代碼工具安裝