Emacs Cedet无法正确解析/usr/include下的time.h

Emacs Cedet无法正确解析/usr/include下的time.h,emacs,cedet,emacs-semantic,Emacs,Cedet,Emacs Semantic,我用几乎相同的配置了我的cedet 谢谢alexott,大多数时候它都工作得很好,但是我发现它不能很好地解析/usr/include/time.h中的tm结构 #include <stdlib.h> #include <stdio.h> #include <time.h> int main(void){ struct tm times; FILE file; } #包括 #包括 #包括 内部主(空){ struct-tm时代; 文件; }

我用几乎相同的配置了我的cedet

谢谢alexott,大多数时候它都工作得很好,但是我发现它不能很好地解析/usr/include/time.h中的tm结构

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void){
    struct tm times;
    FILE file;
}
#包括
#包括
#包括
内部主(空){
struct-tm时代;
文件;
}
使用
M-x semantic ia fast jump
时,struct文件是正确的,但semantic在
wchar.h
中找到struct tm,而不是在
time.h
中。
问题似乎是在
wchar.h
中有一个向前声明,用于我的time.h副本中的
struct tm
,似乎符号
\u BEGIN\u NAMESPACE\u STD
显示在结构声明前面,并且使解析器困惑。您只需将其和
\uu END\u NAMESPACE\u STD
添加到变量
semantic-lex-c-preprocessor-symbol-map
作为映射到empty,即可快速修复此问题。然后删除与time.h相关的semanticdb缓存文件(在~/.semanticdb中),或者删除/usr/include中的所有内容,然后重新启动emacs。时间。h应该被重新解析,事情应该在一段时间内正常运行。在那之后。。。除非您想使用std::tm或其他什么东西。

这听起来像是一个应该向Emacs或CEDET团队报告的错误,而不是一个问题。Eric,不确定其他团队是否有相同的问题,或者只是一些配置问题。但即使我添加了两个符号并重建了smeanticdb,它也找不到正确的位置。我还发现符号uu BEGIN_NAMESPACE_STD似乎对解析器没有影响,因为它几乎出现在每个声明之前。