Kscope 1.6.2 第一次亲密接触

时间:2022-11-26 20:57:32

今天安装下了, 号称 Linux  下的source insight  --Kscope



转载自: 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,第一次打开后需要设置依赖工具的路径,按照下图设置即可:

Kscope 1.6.2 第一次亲密接触 

 

 Kscope 1.6.2 第一次亲密接触

 这时打开的源码中文有乱码,通过设置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 1.6.2 第一次亲密接触

 可以看出, 当函数调用关系较复杂时,生成调用关系图已经没有意义,而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."