Принудительно Eclipse CDT для анализа # включенных файлов для выделения - PullRequest
3 голосов
/ 06 февраля 2012

При синтаксическом анализе источников Си Eclipse, похоже, игнорирует #include в отношении определенных макросов. Это плохо, когда дело доходит до выделения, а иногда и автоматического завершения. В качестве примера предположим следующие два заголовочных файла:

bar.h:

#define BAZ 1

foo.h:

#include "bar.h"  //<-- Jumping from here leads to the correct file

#ifdef BAZ
int baz() {       //
    return BAZ;   //  this section will be grayed out
}                 //
#else
int baz() {
    return 42;
}
#endif

int foo() {
    return baz();  // jumping from here will go to the second(42) function
}

До сих пор я пытался изменить параметры / профиль Discovery для проекта, а также перейти к «Использовать активную конфигурацию сборки» для индексатора в общих настройках. Проект является относительно небольшим (но пронизанным макросами) проектом C / C ++ с использованием внешнего компоновщика (autotools / make).

Дополнительные примечания:

Я выяснил, что отчасти проблема заключается в том, что я ссылался на файлы заголовков из другого проекта, которые были установлены в отдельный каталог с помощью файлов Makefiles. Я переключил каталог include из установленного в каталог внутреннего / include проекта. Теперь, когда я собираю другой проект, кажется, что он разрешает макросы в этих заголовочных файлах. Это не совсем красиво, но мне это нравится.

1 Ответ

1 голос
/ 16 марта 2012

Убедитесь, что у вас установлены все соответствующие опции:

Настройки-> C / C ++ -> Индексатор -> Индексировать неиспользуемые заголовки (...)

...