kscope+graphviz查看源代码利器(linux)

 

借他人的文章先描述:http://hi.baidu.com/bellgrade/blog/item/e69d012f9438f9584fc22632.html

 

cscope的图形前端kscope

    官方网站下载 http://kscope.sourceforge.net/dload.shtml

#tar xzvf kscope-1.6.0.tar.gz
#cd kscope-1.6.0
#./configure
#make
#make install

很简单,基本上不需要任何额外的配置。当然了,在安装Linux系统时要保证安装了KDE和Qt开发包。
然后就可以启动Kscope了。第一次启动时,你需要对Kscope做一些简单的配置,在配置时可能要你指定Kscope所需的cscope,ctags和dot,直接点击下面的按钮Guess,让它自己检测就可以了。如果发现有什么没有找到,可能就是你的系统里没有安装所需的软件包,手动安装即可。这里我的系统没有找到dot,所以还不能使用kscope的图表功能。
所谓dot,是指Graphviz,它是一个图表程序,所以要使用Kscope的图表功能,需要graphviz的支持。从http://www.graphviz.org/下载最新的源代码graphviz-2.14.tar.gz,和上面kscope一样解压安装就可以了。

 

2、建立一个新的项目。

点击project->new project.
Details:Name填上你想为你的工程取的一个名字,path为储存工程属性、数据库的目录。
File Types:选上你的工程可能含有的文件的后缀。内核代码一般默认的选择就行了。
Options:内核代码需要选上Kerel Project选项。如果是内核代码,将Refresh Database Automatically去掉(因为内核代码在我们阅读时,一般不发生改动,所以,数据库不需自动更新)。
点击create按钮。加入代码到你的工程中去。

3、阅读代码。

关于代码的跳转阅读的快捷键,在cscope菜单中有具体的介绍。我要说的是它的一个很酷的功能。
将光标停在某个函数名上,按Ctrl + /。根据提示,点两下鼠标,就可以轻松得到一附函数调用的关系图。下面是Linux内核中一个某些函数的调用关系的截图:

 

Kscope 设置外部编辑器(gvim)

settings -> configure Kscope -> options

external Editer : gvim +%L %F

 

 

 

 

另外一篇文章:

以前在windows下用source insight看源代码很方便,现在转到linux下,想着一款类似的软件,于是发现了Kscope。

ubuntu下的源里居然找不到kscope,从网上下了一个源码,1.9.4版本的。按照INSTALL里的说明开始编译。

make的时候,报错:“error: qsciscintilla.h: 没有那个文件或目录”,在/usr/下也没有搜索到这个头文件。在网上看到有位仁兄提到了解决办法,是把/usr/include/qt4/下的Qsci目录软链接到/usr/include下,不知道这个Qsci是何物。于是我在好立德里搜"qsci",找到两个相关的库,库的名字整好和头文件一样"libqscintilla2-dev","libqscintilla-dev"(又看了一遍,不完全一样,有一个"i"的差别)。软件包的description里写到“The Qt4 port of the Scintilla source code editing widget”,看来就是缺少这个东西,于是安装了一下。再把/usr/include/qt4/Qsci软链接到/usr/include/Qsci,编译,通过了。

再然后是安装,make install,通过。

最后在命令行执行"kscopeapp",提示找不到libkscope_core.so.1。这个库在安装的时候明明看到过。。。搜索了一下,在/usr/local/lib/有这个库。在/etc/ld.so.conf.d/下创建一个kscope.conf文件,写入“/usr/local/lib”,再执行ldconfig,使动态库搜索路径包含该目录。再次执行"kscopeapp",OK,可以启动了!

 

 

另外对于ubuntu10.10可以用如下脚本自动完成,从往上找到的,到这里分享

在网上查找kscope的安装,建议使用如下脚本:

#!/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*.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."

可是在使用的时候出现如下错误提示:

Determining machine hardware name... 
Downloading KDE3 libraries needed by kscope...
--2010-12-30 22:44:04--  http://ftp.debian.org/debian/pool/main/k/kdebase/kate_3.5.9.dfsg.1-6_amd64.deb
登陆http://ftp.debian.org/debian/pool/main/k/kdebase/目录下,发现/kate_3.5.9.dfsg.1-6_amd64.deb已经变为kate_3.5.9.dfsg.1-6+lenny1_${ARCH}.deb,将脚本重新修改一下文件名然后执行,就可以正常安装kscope使用了。

注意,如果安装出了问题可以:

sudo apt-get install -f

或者

sudo dpkg --configure -a

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值