0

我用http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html配置了我的 cedet 几乎相同。

感谢 alexott ,大多数时候它运行良好,但我发现它无法很好地解析 /usr/include/time.h 中的 tm 结构。

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void){
    struct tm times;
    FILE file;
}

使用M-x semantic-ia-fast-jump时,结构 FILE 是正确的,但语义在 中找到结构 tm wchar.h,而不是在 中time.h。问题似乎wchar.hstruct tm.

4

1 回答 1

1

在我的 time.h 副本中,该符号似乎出现__BEGIN_NAMESPACE_STD在结构声明的前面,并且使解析器感到困惑。您可以通过将其添加__END_NAMESPACE_STD到变量semantic-lex-c-preprocessor-symbol-map中作为映射为空来快速解决该问题。然后删除与 time.h 相关的语义数据库缓存文件(在 ~/.semanticdb 中),或仅删除 /usr/include 中的所有内容,然后重新启动 emacs。time.h 应该被重新解析,之后 time.h 应该可以正常工作......除非你想使用 std::tm 或其他东西。

于 2012-01-18T01:19:51.597 回答