天天看點

linux開發工具-kscope

在官網下載下傳kscope1.9.4.tar.gz

tar xvf kscope.1.9.4.tar

進入解壓後的目錄:

1:qmake(請先確定能用,如果沒有請安裝)

2:make(出錯,别急!去新裡得搜尋qsci ,安裝下面的libqscintilla2-dev,libqscintilla-dev,libqscintill2-5)

3:由于QSCI檔案夾在 /usr/include/qt4/Qsci下,所有需要做軟連結

   sudo ln -s /usr/include/qt4/Qsci /usr/include/Qsci

4:再次make,安裝完成

5:輸入 kscopeapp啟動再次出錯

     鎮靜(管理者權限處理 )在/etc/ld.so.conf.d/下建立kscope.conf    輸入/usr/local/lib

(如 進入 cd /etc/ld.so.conf.d/

       sudo  vi kscope.conf  (在裡面輸入 /usr/local/lib)

   再執行 sudo  ldconfig 。 

1.6.2的安裝

轉載自: http://www.cnblogs.com/crazyhack/archive/2011/07/15/2107710.html 

1.安裝kde環境支援: 

在ubuntn11.04下,不能直接安裝kscope1.6.2,先要安裝kde環境支援,如下步驟:

apt-get install kdelibs     (解決kde-config not found)

sudo apt-get install xorg-dev  (解決error:can't find X includes?)

sudo apt-get install kdelibs4-dev kdelibs4c2a (解決no KDE headers installed)

本人在安裝這些庫的時候,也遇到了一些問題,安裝的時候出現了:0% [Waiting for headers],然後就不動了。google了下,說是在apt-get install的過程中被中斷過(确實是這樣過),按照網上說的,把目錄下的/var/cache/apt/archives的一些檔案删除掉了,特别是/var/cache/apt/archives/partial目錄下的檔案。

2.  下載下傳kscope-1.6.2

下載下傳位址:http://download.chinaunix.net/download/0006000/5469.shtml

下載下傳後,解壓縮,并進入到kscope-1.6.2的源碼根目錄中。

3. 配置.configure

用指令./configure --without-arts進行config

這個時候,會提示找不到這個,找不到那個,按照提示,将所需要的軟體包都 安裝上。列出幾個如下:

錯誤1: configure: error: C++ preprocessor "/lib/cpp" fails sanity check

解決方法:sudo apt-get install build-essential ,然後再./configure --without-arts

錯誤2:  configure: error: Lex/Flex is required in order to build KScope

解決方法:sudo apt-get install flex,然後再./configure --without-arts

錯誤3:  configure: error: Yacc/Bison is required in order to build KScope

解決方法:sudo apt-get install bison,然後再./configure --without-arts

安裝過程中,隻記錄了這些錯誤,如果還出現其它錯誤,google下,一般都能找到。

4. make

make時會出現的問題:

錯誤1: /usr/bin/ld: cannot find -lkateinterfaces

make時提示找不到 -lkateinterfaces,不用擔心,該參數是要找動态連結庫,其實沒有動态連結庫,隻有靜态連結庫,該庫位于/usr/lib/libkatepartinterfaces.la,這個時候,切換到src目錄下:

[ /home/lanch/Download/kscope-1.6.2]$cd src

[ /home/lanch/Download/kscope-1.6.2/src]$grep -n -lkateinterfaces Makefile(evisie注:這行指令并沒有起到實際作用,是以我直接在/src/Makefile檔案中替換了 -lkateinterfaces,查找方法和windows類似,Ctrl+F)

将Makefile檔案中使用-lkateinterfaces 的地方,替換為/usr/lib/libkatepartinterfaces.la,接着,退回到上層目錄cd .. ,進行make,就會大功告成。

5. sudo make install

這個過程中沒現過錯誤。

6. 安裝cscope,ctags,graphviz

sudo apt-get install cscope ctags  graphviz

到此安裝kscope1.6.2完成,可以在終端中輸入kscope打開kscope1.6.2了,當然你可以作成一個快捷方式,這裡就不再說明。

使用了下,kscope1.6.2總體不不錯,速度比eclipse快多了,功能和界面比source navigator強多了…

在終端輸入kscope,第一次打開後需要設定依賴工具的路徑,按照下圖設定即可:

 這時打開的源碼中文有亂碼,通過設定Tools-Encoding為Chinese Simplified(gb2312)後解決

若要檢視linux c編譯的項目,則選擇Project-New Porject,然後添加項目中所有的.c和.h,.pc為字尾的源檔案即可,若要使用cscope的call function或者call graph功能,則要先點選rebuild database生成相應的tags檔案才行,看來和用Vim配置ctags插件是一樣的。

 由于項目龐大,函數調用關系複雜,故隻展示其中一個子函數被main函數調用的函數調用圖,生成結果如下

 可以看出, 當函數調用關系較複雜時,生成調用關系圖已經沒有意義,而Kscope自帶的過濾功能也不完善

 可惜的是,如此好的開源項目作者沒有繼續維護下去了,不得不說是Linux使用者的遺憾。

網上有腳本:

http://blog.csdn.net/lynxzong/article/details/6118560

#!/bin/bash

# This script helps you install Kscope on Ubuntu 9.04.

# You can also use it to fix "Kscope doesn't run in KDE4" bug.

echo "Determining machine hardware name... "

MACHINE=`uname -m`

case "$MACHINE" in

  i386 | i586 | i686)

    ARCH="i386"

    ;;

  x86_64)

    ARCH="amd64"

    ;;

  *)

    ARCH="i386"

    ;;

esac

# If Kscope is not installed, install it.

which kscope &> /dev/null

if [ $? -ne 0 ]; then

  echo "Installing kscope..."

  sudo apt-get install kscope || /

  wget http://archive.Ubuntu.com/ubuntu/pool/universe/k/kscope/kscope_1.6.0-1_${ARCH}.deb && /

  sudo dpkg -i kscope_*.deb || /

  sudo apt-get -fy install || /

  echo "Oops, some error happens..."

fi

kscope -v &> /dev/null

if [ $? -eq 0 ]; then

  echo "Kscope works fine."

  exit

fi

echo "Downloading KDE3 libraries needed by kscope..."

wget http://ftp.debian.org/debian/pool/main/k/kdebase/kate_3.5.9.dfsg.1-6+lenny1_${ARCH}.deb

dpkg -x kate_3.5.9.dfsg.1-6+lenny1_i386.deb kate

echo "Installing KDE3 libraries..."

sudo cp kate/usr/lib/libkateinterfaces.so.0.0.0 /usr/local/lib/

sudo cp kate/usr/lib/libkateutils.so.0.0.0 /usr/local/lib

sudo ln -s /usr/local/lib/libkateinterfaces.so.0.0.0 /usr/local/lib/libkateinterfaces.so.0

sudo ln -s /usr/local/lib/libkateutils.so.0.0.0 /usr/local/lib/libkateutils.so.0

sudo ldconfig

echo "Finished." 

繼續閱讀