#c #eclipse #eclipse-cdt
#c #eclipse #eclipse-cdt
Вопрос:
Наша кодовая база условно компилирует код на основе конфигураций во время компиляции. Плагин CDT в Eclipse в настоящее время не индексирует скомпилированный код, поэтому я не могу перейти к определению функции, если оно находится внутри #ifdef
. Как я мог бы заставить индексирование работать?
Ответ №1:
Нельзя предполагать, что код будет компилироваться, если условия игнорируются. В этом свете эта функция не может работать (в общем случае).
Я предлагаю использовать конфигурацию сборки, которая определяет все необходимые символы для компиляции всех блоков. Конечно, это означает, что вместо того, чтобы
#ifdef FEATURE_X
code;
#else
other code;
#endif
вам придется использовать более громоздкий
#ifdef FEATURE_X
code;
#endif
#ifdef FEATURE_Y
other code;
#endif
Таким образом, вы можете позволить индексатору работать с -DFEATURE_X -DFEATURE_Y
. Однако вы не можете выполнять отладку в такой конфигурации, потому что оба блока также будут выполнены