Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16314
  • 博文数量: 9
  • 博客积分: 320
  • 博客等级: 一等列兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-29 10:57
文章分类
文章存档

2011年(1)

2009年(8)

我的朋友
最近访客

分类: LINUX

2009-10-13 09:16:12

Kscope 是我很喜欢的 Linux 平台上的代码查看工具,因为我不会用 Emacs,vim + ctags 又用得不熟,看看小程序还可以,看大项目就傻眼了。以前也尝试过 Source-Navigator(这个项目N年没更新,06年时候我装都装不上,08年底居然又复活了,有空了再去试试)、Eclipse、 Kdevelop、CodeBlocks,总之都没有 Kscope 用着最舒服。Kscope 让我欣赏的特点主要有:

1. 它号称是代码编辑环境(source-editing environment),而不是IDE。我不用在建立 Kscope 项目时烦心地去选择项目类型、编译器、编译选项等等。编译我有 Makefile,我就是找个工具看看代码,用得着那么麻烦吗。 建立 Kscope 项目时只需要干两件事:选择项目名、项目保存地址和添加源文件。

2. 它不会在源文件目录下建立一堆乱七八糟的文件,影响市容。我记得 Eclipse、CodeBlocks 等都会把项目信息保存在源文件目录下,而 Kscope 的项目保存位置可以自己选,比如我一般都保存在 workspace/kscope 目录下面,这样对要查看的源文件目录没有任何影响。因此 Kscope 的项目和源文件基本没关系,我可以添加任何位置的源文件到某个项目中去。

3. 它不会去读非指定类型的文件。这是针对 Eclipse 来说的,每次在 Eclipse 项目中搜索时,一堆 .svn 目录中文件的结果让我感觉非常闹心,两年没用不知道现在的 Eclipse 是不是更智能点儿了,但是 Eclipse 改不了的毛病就是慢和吃内存。

4. 它支持代码查看的基本功能。其实我最常用的也就那么几个功能:语法高亮、同时打开多文件、整个项目中搜索字符串、查找函数定义位置和引用、项目文件列表+搜索。在这些条上据说 Windows 下的 SourceInsight 做得更好,但我没用过没有发言权。

简而言之,Kscope 与其它工具比就是快、简单、省心。但是时代在变革呀,转眼到了 KDE4 的时代,而 Kscope 仍然停留在 KDE3.5 上。现在的 Ubuntu 9.04 的依赖关系里,居然已经撤掉了 Kscope,在 9.04 上 sudo apt-get install kscope,会得到这样的消息:E: Couldn’t find package kscope,真是让人丧气。

其实 Kscope 之所以不能安装,主要原因是它依赖于 Kate 的两个库:libkateinterfaces.so.0 和 libkateinterfaces.so.0,只需要从 KDE3.5 的 Kate 中提取出来这两个库安装到系统中后,Kscope 就可以正常运行了。Ubuntu 9.04 的依赖关系中虽然找不到 Kscope,但是 Ubuntu 的软件仓库中还有 Kscope 的包,我们可以手动下载安装。下面这个脚本的功能就是自动安装 kscope 到 Ubuntu 9.04,稍微修改一下也可以用于在其它 KDE4 桌面系统中安装 Kscope,或者解决 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_${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."


转自:


自己安装:
可以在下面链接下载1.6版的deb
  
直接安装后,但这时并不能运行,因为kscope不支持kde4的库,但我们可以下载旧的库,在终端下输入:
        wget ftp.debian.org/debian/pool/main/k/kdebase/kate_3.5.9.dfsg.1-6_i386.deb
下载完成后在终端输入:
tar x kate_3.5.9.dfsg.1-5_i386.deb
tar xzf data.tar.gz
然后把libkateinterfaces.so.0.0.0 和 libkateutils.so.0.0.0
拷到下面的目录
/usr/local/lib
sudo mv libkateinterfaces.so.0.0.0 libkateutils.so.0.0.0 /usr/local/lib
记住也要sudo ldconfig
如果没有意外的话,这时应该能运行Kscope

转自:http://hi.baidu.com/assxq/blog/item/c0a4a00946efb19c0b7b82fe.html
阅读(1186) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

mary02082009-11-03 11:34:51

还有个人觉得KSCOPE的功能远远比sourceinsight. 1 后者动态匹配能力更强,把鼠标放在一个变量上面,就可以看该变量或者结构体的类型。前者还要还要点右键来选择。而且,后者可以不用离开原来的代码界面,前者要离开。 2 查找功能很弱,单个文件内查找困难。这一点还不如gedit做得好。后者可以保存N此查找信息,前者却只能保留上次查找的信息。 3 ... 反正我用的是诸多不爽,但是linux下面,似乎大家都用他家的了。 还有一次,既然莫名奇妙的自动退出了,把我辛辛苦苦写的文件的后半截,按了ctrl+s后,莫名其妙的丢了!心里真是痛阿!总之,大家以后一定要记得备份! 时间有限,就写这么点吧!就当是用KSCOPE不爽的人,发了点牢骚吧!

mary02082009-11-03 11:25:38

这是转的前辈的文章了,我自己用了第2中方法安装,可以启动,但是很不爽的是每次ctrl+s保存之后,就不能再做其他的操作,kscope就不再容许用户在他的界面上做任何修改。后来一个同仁告诉我用SH安装,他的ctrl+s保存之后完全没有影响!而且我自己也去验证过。有什么区别呢?我看似乎并没有什么区别,几次三番的卸了kscope,再安装。这里还特意把里面的IF语句给注释掉了,因为新立得似乎并没有卸载干净,这个sh检测到我已经安装了。卸载,删掉软链接,重新SH。几次,还是一样的问题,保存后不能修改!郁闷中。。。