每当我使用"semantic-symref- symbol“(C-c,g)尝试获取对任何符号的所有引用时,我都会收到No references found消息,无论该符号是C++类成员变量还是局部变量,它都找不到任何引用。gtag数据库位于我的项目根目录下。在我的.emacs文件中,我有以下内容:
(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)当我在命令行下输入"global -xs symbol“时,它正确地显示了对该符号的所有引用。但是为什么语义找不到任何东西呢?另一方面,'semantic-symref‘在查找类或类成员函数的引用时工作得很好,但它不适用于变量。
这只是一个bug,还是我遗漏了什么使符号引用无法工作的东西?
发布于 2011-03-29 19:19:50
这个问题是关于GNU Global是如何在语义中使用的,前几天在邮件列表上出现了。GNU Global允许您查找标签(使用-r)或随机符号(-s)的出现,语义使用-r标志,您提到的变量不被GNU Global视为标签。
在cedet-global.el支持文件中的函数cedet-gnu-global-search中,有人建议在搜索‘符号时使用或添加-s标志,但我不知道此时的分辨率会是什么。
您可以在cedet-devel邮件列表中看到整个线程:
http://sourceforge.net/mailarchive/forum.php?forum_name=cedet-devel&max_rows=25&style=ultimate&viewmonth=201103
https://stackoverflow.com/questions/5444440
复制相似问题