免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1664 | 回复: 0
打印 上一主题 下一主题

emacs + cscope 的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-31 10:42 |只看该作者 |倒序浏览

1.首先到
http://cscope.sourceforge.net
下载cscope
2.安装:
     tar -zxf cscope-xx.x.tar.gz
     cd cscope-xx.x
     ./configure
     make
     make install
    然后把contib/xcscope/目录下的cscope-indexer复制到PATH目录比如/usr/local/bin
3.配置
    接着whereis emacs 看下emacs安装在哪里,
    把cscope-xx.x目录下的 contrib/xcscope/xcscope.el文件拷贝到/usr/share/emacs/site-lisp/目录下面.
     cp contrib/xcscope/xcscope.el /usr/share/emacs/site-lisp/
     
     在.emacs文件中添加
      (require 'cc-mode)
      (load-file "/usr/share/emacs/site-lisp/xcscope.el")
      (require 'xcscope)
4 生成索引文件
   要使用cscope的强大功能,首先需要为我们的代码生成一个cscope数据库。生成数据库很简单,在我们的项目根目录运行下面的运行
     cscope -Rbkq
   会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。
   参数意义如下:
    -R: 在生成索引文件时,搜索子目录树中的代码
    -b: 只生成索引文件,不进入cscope的界面
    -k: 在生成索引文件时,不搜索/usr/include目录
    -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
    -i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用“-”,表示由标准输入获得文件列表。
    -I dir: 在-I选项指出的目录中查找头文件
    -u: 扫描所有文件,重新生成交叉索引文件
    -C: 在搜索时忽略大小写
    -P path: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了
    Cscope只在第一次解析时扫描全部文件,以后再调用cscope,它只扫描那些改动过的文件,这大大提高了cscope生成索引的速度。
    在缺省情况下,cscope在生成数据库后就会进入它自己的查询界面,我们一般不用这个界面,所以使用了“-b”选项。如果你已经进入了这个界面,按CTRL-D退出。
    Cscope在生成数据库中,在你的项目目录中未找到的头文件,会自动到/usr/include目录中查找。如果你想阻止它这样做,使用“-k”选项。
   
Cscope缺省只解析C文件(.c和.h)、lex文件(.l)和yacc文件(.y),虽然它也可以支持C++以及Java,但它在扫描目录时会跳过
C++及Java后缀的文件。如果你希望cscope解析C++或Java文件,需要把这些文件的名字和路径保存在一个名为cscope.files的文
件。当cscope发现在当前目录中存在cscope.files时,就会为cscope.files中列出的所有文件生成索引数据库。
    find . -name "*.h" -o -name "*.c" -o -name "*.cc"  -o -name "*.cpp" -o -name "*.hpp" > cscope.files
cscope -bkq -i cscope.files
5 在代码中穿梭
  查找函数或者变量 c-c s s
  查找函数或变量的定义 c-c s g
  查找函数在哪里被调用了,c-c s c
  查找该函数调用了哪些函数 c-c s C
  查找到的函数上次出现的位置 c-c s p
  查找到的函数下次出现的位置 c-c s n

               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104447/showart_2136171.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP