Neo*_*ard 13 preprocessor analysis clion
在我的项目中,有一个ifdef预处理器指令中包含的文件
#ifdef SOME_SYMBOL
... entire file ...
#endif
Run Code Online (Sandbox Code Playgroud)
SOME_SYMBOL由在此之前编译的另一个文件定义,并且代码按预期工作,但静态分析器不知道此符号,因此它对待SOME_SYMBOL未定义.整个文件没有语法突出显示,只是跳过了一些分析(例如语法错误突出显示).
有没有办法告诉分析器将此符号视为已定义,而不在CMakeLists.txt中定义它?
我没有在CMakeLists.txt中定义SOME_SYMBOL的选项,因为项目依赖于它在某些编译路径中未定义(更改这几乎是不可能的).
更新:
似乎这是目前JetBrains的一个未解决的问题.见问题CPP-2286
Clion 现在有一个可用于检测 IDE 的宏: https://youtrack.jetbrains.com/issue/CPP-1296#comment=27-1846360
#ifdef __JETBRAINS_IDE__
// Stuff that only clion will see goes here
#endif
Run Code Online (Sandbox Code Playgroud)
这允许您放入定义,以使 clion 在无法足够聪明地弄清楚代码的情况下正确呈现您的代码。
该__JETBRAINS_IDE__宏的值是 IDE 的版本字符串。对于不同的 Jetbrains IDE,存在特定版本的宏:__CLION_IDE__、__STUDIO_IDE__(对于 Android Studio)和__APPCODE_IDE__(对于 AppCode)。
耶!
小智 4
要获得语法突出显示:\n转到“设置”\xe2\x87\x92“编辑器”\xe2\x87\x92“颜色和字体”\xe2\x87\x92 C/C++,然后删除“有条件非编译代码”的所有勾选。这样,所有代码都会以通常的突出显示方式显示。
\n| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |