免费注册 查看新帖 |

Chinaunix

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

cscope在windows下使用mingw编译的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-07 01:00 |只看该作者 |倒序浏览
cscope在windows下使用mingw编译的方法

作者: 刘凯 mslk.sa@gmail.com
关键字:cscope.exe,cscope15.6.exe,cscope windows,cscope win32,cscope mingw,修改编译cscope
摘要:使用mingw编译cscope win32 native的方法,本文以cscope最新版本15.6(20060930)为例。

因为最近想看一个大项目的源代码,两年前就知道cscope是个比较适合的辅助工具,当时看到cscope15.5是2003年的版本,觉得好久不更新太老了就没有用,今天看到了新版本15.6(20060930)还算比较新,就决定试试它到底有多爽。
在网上找了一下,发现windows下的版本都是很久以前的,就只好自己编译了。
下面说说我编译的方法:
一、        下载安装gcc和一些必须的工具。
cscope.sf.net下载最新的cscope-15.6.tar.gz。
        www.mingw.org 上的gcc编译器工具集、bash3.1都要搞下来。
        gunwin32.sf.net 上的bison,flex,m4,make,PcRe,PdCurses,……
二、修改源代码
在cmd窗口中进入cscope-15.6的目录执行:
1、        sh configure –build=mingw32       
需要等几分钟,在最后能看到信息:config.status: creating src/Makefile就行了
2、        进入src目录
3、        打开编辑global.h,在文件最后#endif /* CSCOPE_GLOBAL_H */的前面,加上两行:
#define __DJGPP__
#define __MSDOS__
4、        打开编辑exec.c,注释掉41行://#include <sys/wait.h>
5、        打开编辑mypopen.c,注释掉37行://#include <sys/wait.h>
注释掉84、85行:
//if(fd != -1 && (fcntl(fd, F_SETFD, CLOSE_ON_EXEC) != -1))
//return(fd);
6、        打开编辑find.c,注释掉1160行://(void) sleep(3);
7、        打开编辑main.c,
修改360行orig_umask = umask(S_IRWXG|S_IRWXO);为:
orig_umask = umask(S_IRWXU);
修改363行if(mkdir(tempdirpv,S_IRWXU)) {为:
                if(mkdir(tempdirpv)) {
注释掉378行://signal(SIGQUIT, myexit);
注释掉381行://signal(SIGHUP, myexit);
注释掉404行://signal(SIGPIPE, SIG_IGN);/* | command can cause pipe signal */
修改895行if (sig == SIGQUIT) {为:
                if (sig == SIGTERM ||
            sig == SIGABRT ||
            sig == SIGBREAK){
修改175行fprintf(stderr, "%s: version %d%s\n", argv0,为:
                fprintf(stderr, "%s: version %d%s.\tCompiled by MSLK\n", argv0,
8、        打开编辑Makefile,
修改133行CURSES_LIBS = -lcurses为:
                CURSES_LIBS = -lpdcurses –lpcre
三、编译cscope,在cmd窗口中进入cscope-15.6/src的目录执行:
make –k
        cscope –V        瞧一下自己编译的最新版本,很爽吧。
四、后记
cscope配合emacs试了一下,要把cscope-15.6\contrib\xcscope\ xcscope.el放入emacs/site-lisp中, \M+x: cscope-find-this-symbol确实挺不错的,        比ctags的功能强多了,特别是多处出现时找着比\M+,、\M+.方便多了。
        cscope –h        可以看看帮助学习学习。

[ 本帖最后由 mslk 于 2007-5-7 01:32 编辑 ]

cscope15.6-win32.zip

161.05 KB, 下载次数: 1634

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP