In meinem Projekt gibt es eine Datei in einer ifdef Präprozessordirektive eingeschlossendefinieren Präprozessorsymbole für CLION Analysator
#ifdef SOME_SYMBOL
... entire file ...
#endif
SOME_SYMBOL durch eine andere Datei definiert ist, die vor diesem kompiliert und der Code funktioniert wie erwartet, aber die statische Der Analyzer kennt dieses Symbol nicht und behandelt daher SOME_SYMBOL nicht definiert. Die gesamte Datei weist keine Syntaxhervorhebung auf und einige der Analysen werden einfach übersprungen (z. B. Syntaxfehlerhervorhebung).
Gibt es eine Möglichkeit, dem Analysator mitzuteilen, dass dieses Symbol wie definiert behandelt wird, ohne es in CMakeLists.txt zu definieren?
Ich habe nicht die Möglichkeit, SOME_SYMBOL in CMakeLists.txt zu definieren, da das Projekt davon abhängt, dass es in einigen Kompilierpfaden nicht definiert ist (eine Änderung wäre fast unmöglich).
Update:
Scheint so, als sei dies derzeit ein offenes Problem mit JetBrains. Siehe Issue CPP-2286
Möglicherweise müssen Sie den geeigneten Einschlusskontext für die Datei finden. Wenn Sie eine sichtbare Statusleiste haben, können Sie die Dropdown-Liste "Kontext:" in der rechten unteren Ecke sehen. Probier es einfach aus. – uta