Cedet не может правильно проанализировать time.h в /usr/include

Я сконфигурировал свой cedet почти так же, как http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html.

Спасибо alexott, большую часть времени он работает хорошо, но я обнаружил, что он не может хорошо проанализировать структуру tm в /usr/include/time.h.

#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.h для struct tm,

1 ответ

В моем экземпляре time.h кажется, что символ __BEGIN_NAMESPACE_STD появляется перед объявлением структуры и сбивает с толку парсер. Вы можете исправить это быстро, просто добавив это и __END_NAMESPACE_STD к переменной semantic-lex-c-preprocessor-symbol-map как отображение на пустой. Затем удалите файлы кеша semanticdb (в ~/.semanticdb), связанные с time.h, или просто все в /usr/include, и перезапустите emacs. time.h должен быть обработан повторно, и после этого все должно работать нормально для time.h... если вы не хотите использовать std::tm или что-то еще.

Другие вопросы по тегам