Редактор Eclipse/CDT не собирает определяемые проектом символы в раскраске ifdef'ed

Проблема, которую я вижу, заключается в том, что при настройках C/С++ Определенные символы для разных конфигураций/целей не отображаются в цвете кода.

Когда я изменяю конфигурацию активной сборки в меню проекта, я ожидаю, что редактор и раскраска кода будут отображать символы из настроек проекта, но, похоже, они собирают символы для одной из целей.

Есть ли способ кодирования кода для ifdef'ed кода следовать конфигурации активной сборки?

Ответы

Ответ 1

Я решил эту проблему в своей системе, установив "Window- > Preferences- > C/С++ → Indexer- > Использовать конфигурацию активной сборки

Ответ 2

В ответ на комментарий phord. После изменения установки индексатора на "Использовать активную конфигурацию" вам необходимо изменить активный код проекта на что-то еще, а затем обратно. Затем он подбирает изменения.

Ответ 3

просто небольшое дополнение к опции символов: дайте ему значение 1

что сработало для меня, это:

  • скопируйте имя определения в буфер обмена (скажем, у нас есть: #ifdef DBG_TYP_1)
  • выберите проект в проводнике проекта
  • перейти - Project- > Properties- > C/С++ General- > Path and Symbols
  • на вкладке "# Символы"
  • добавить символ DBG_TYP_1 со значением 1

спасибо за советы!

Ответ 4

Попробуйте поиграть с опциями Discovery. (Щелкните правой кнопкой мыши по проекту, выберите "Свойства", перейдите в раздел "Сборка C/С++" и выберите "Параметры поиска".)

Возможно, вам придется перестроить проект после изменения конфигурации сборки, чтобы Eclipse повторно запустил его обнаружение, или вам может потребоваться изменить параметры обнаружения для каждой конфигурации, чтобы заставить их генерировать разные результаты. (Извините, это не область CDT, с которой я много играл.)