今天安装下了, 号称 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,第一次打开后需要设置依赖工具的路径,按照下图设置即可:
这时打开的源码中文有乱码,通过设置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."