W moim projekcie znajduje się plik zamknięte w dyrektywie ifdef preprocesoraDefiniowanie symboli preprocesora dla analizatora Clion
#ifdef SOME_SYMBOL
... entire file ...
#endif
SOME_SYMBOL jest zdefiniowany przez inny plik, który jest skompilowany przed tym jednym, a kod działa zgodnie z oczekiwaniami, ale statyczne analizator nie jest świadomy tego symbolu i dlatego traktuje SOME_SYMBOL jako niezdefiniowany. Cały plik nie ma podświetlanych składni, a niektóre analizy są po prostu pomijane (np. Podświetlanie składni).
Czy istnieje sposób na poinformowanie analizatora, aby traktował ten symbol zgodnie z definicją bez definiowania go w CMakeLists.txt?
Nie mam opcji definiowania SOME_SYMBOL w CMakeLists.txt, ponieważ projekt zależy od tego, czy jest niezdefiniowany w niektórych ścieżkach kompilacji (zmiana jest prawie niemożliwa).
Aktualizacja:
Wygląda na to, że obecnie jest to otwarty problem z JetBrains. Zobacz Issue CPP-2286
Istnieje szansa, że trzeba znaleźć odpowiedni kontekst włączenia dla pliku. Jeśli masz widoczny pasek stanu, możesz zobaczyć listę rozwijaną "Kontekst:" w prawym dolnym rogu. Po prostu spróbuj. – uta