您的位置:首页 > 编程语言

cscope无法索引代码树之外的软链接

2014-03-25 14:19 309 查看
http://blog.csdn.net/sudolee/article/details/9052291

背景:为什么非要使用cscope?不用ctags?

尽管ctags可以索引软链接,但是,ctags不能查找“调用者”,比如:你想看看某个函数在哪些位置被调用了, .etc

1, 卸载cscope

2, 下载cscope源代码:

[html] view plaincopy
http://sourceforge.net/projects/cscope/files/cscope/15.8a/
p.s 我下载的15.8a,在debian sid使用正常

3, 修改如下:

[html] view plaincopy

diff --git a/src/dir.c b/src/dir.c

index cf9330d..e73d86f 100644

--- a/src/dir.c

+++ b/src/dir.c

@@ -651,7 +651,7 @@ accessible_file(char *file)

if (access(compath(file), READ) == 0) {

struct stat stats;

- if (lstat(file, &stats) == 0

+ if (stat(file, &stats) == 0

&& S_ISREG(stats.st_mode)) {

return YES;

}

原因如下: man stat

stat() stats the file pointed to by path and fills in buf.

lstat() is identical to stat(), except that if path is a symbolic
link, then the link itself is stat-ed, not the file that it refers to.

4, 接下来就是通用的方法:

[html] view plaincopy

./configure

make -jN

sudo make install

5, 试试效果:

[html] view plaincopy

find -L . | grep -E '\.c$|\.h$|\.S$|\.cpp$|\.java$|\.lds$|\.ld*|\.chh$|\.cc$' > cscope.files

cscope -Rbqk

6, vim....

编译过程中可能碰到的问题:

sudo apt-get install libncursesw5-dev

sudo apt-get install libncurses5-dev

sudo apt-get install byacc

sudo apt-get install flex
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: