gpt4 book ai didi

preprocessor - 定义CLion分析仪的预处理器符号

转载 作者:行者123 更新时间:2023-12-03 23:56:43 37 4
gpt4 key购买 nike

在我的项目中,ifdef预处理程序指令中包含一个文件

#ifdef SOME_SYMBOL
... entire file ...
#endif


SOME_SYMBOL由在此文件之前编译的另一个文件定义,并且代码按预期工作,但是静态分析器不知道此符号,因此它将SOME_SYMBOL视为未定义。整个文件没有语法高亮显示,只是跳过了一些分析(例如,语法错误高亮显示)。

有没有一种方法可以告诉分析器在不定义CMakeLists.txt的情况下将其视为已定义的符号?

我没有在CMakeLists.txt中定义SOME_SYMBOL的选项,因为该项目依赖于某些编译路径中未定义的项目(更改此更改几乎是不可能的)。

更新:
似乎这是JetBrains当前的未解决问题。见 Issue 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


这使您可以放入定义,以使clion在无法巧妙地找出代码的情况下正确地呈现代码。

__JETBRAINS_IDE__宏的值是IDE的版本字符串。宏的特定版本适用于不同的Jetbrains IDE: __CLION_IDE____STUDIO_IDE__(对于Android Studio)和 __APPCODE_IDE__(对于AppCode)。

好极了!

注意:在撰写本文时,仅在最新的CLion EAP中可用。

关于preprocessor - 定义CLion分析仪的预处理器符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378169/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com