在我的项目中,有一个文件被包含在一个ifdef预处理器指令中。
#ifdef SOME_SYMBOL
... entire file ...
#endif
SOME_SYMBOL由另一个文件定义,该文件在此文件之前被编译,代码按预期工作,但静态分析器不知道该符号,因此它会将SOME_SYMBOL视为未定义。整个文件没有语法突出显示,并且某些分析被跳过(例如语法错误突出显示)。
是否有办法告诉分析器将此符号视为已定义而不必在CMakeLists.txt中定义它?
我不能在CMakeLists.txt中定义SOME_SYMBOL,因为项目依赖于在某些编译路径上未定义它(更改这一点几乎是不可能的)。
更新:
似乎这是JetBrains目前的一个未解决问题。请参见Issue CPP-2286