Я использую препроцессорные переменные, чтобы определить, создан ли код для тестов или производства (я знаю, что вы этого не сделаете, но это не проблема).
Я добавил emc_test
препроцессора emc_test
в Project
→ C++ General
→ Paths and Symbols
→ # Symbols
, но индексированный индекс C++ не видит этого, что приводит к блокированию, защищенному #ifdef emc_test
, серым цветом и sybmols внутри не видно завершения кода.
В моем случае у меня была две конфигурации сборки, одна для тестов (с установленной emc_test
), а другая для выпуска. Я предположил, что индекс C++ будет использовать любую конфигурацию, и это было не так.
В C++ General
→ Indexer
есть запись, которая контролирует, какая конфигурация является источником символов препроцессора C++
. И по умолчанию в eclpise была выбрана "Использовать конфигурацию фиксированной сборки".