天天看点

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." 

继续阅读