QT不';除非重建整个项目,否则不会显示以前的生成警告
我不确定这是否是IDE的标准行为,但我个人觉得这很烦人。如果一个文件在生成时产生警告(未使用的变量、不匹配的整数/长度等),那么如果修改另一个文件并单击“生成项目”按钮,这些警告将停止显示。继续显示与未修改代码相关的警告是否更有意义?有没有办法强制这种行为?编译器发出警告时会显示警告——不幸的是,这是VS团队(至少到2008年)和Qt Creator团队做出的设计决定 这似乎是一种标准行为,我不知道有什么方法可以替代它。在QtCreator中修复应该很容易,但在VisualStudio中可能很难修复,除非存在相关的API。对于VS,您需要编写一个外接程序,并且需要一个API,该API允许您对错误列表和构建过程进行读写访问。如果存在这样的API,那么这也是一件简单的事情。这是“标准行为”,更具体地说,行为是构建系统在地球上“被设计为如何行为”的属性 正如@Kuba所指出的,警告是由编译器发出的。它们不会被存储(除了在构建操作的“所有错误/警告日志”中,IDE通常不会为将来的构建操作回读和摘录这些日志,这将获得它们自己的新警告/错误日志)。因此,除非编译器实际再次编译文件,否则不会再次看到警告,这是因为新的生成操作会再次生成新的警告 为了得到您想要的(一个聪明的想法,IMHO),构建系统需要:QT不';除非重建整个项目,否则不会显示以前的生成警告,qt,build,warnings,Qt,Build,Warnings,我不确定这是否是IDE的标准行为,但我个人觉得这很烦人。如果一个文件在生成时产生警告(未使用的变量、不匹配的整数/长度等),那么如果修改另一个文件并单击“生成项目”按钮,这些警告将停止显示。继续显示与未修改代码相关的警告是否更有意义?有没有办法强制这种行为?编译器发出警告时会显示警告——不幸的是,这是VS团队(至少到2008年)和Qt Creator团队做出的设计决定 这似乎是一种标准行为,我不知道有什么方法可以替代它。在QtCreator中修复应该很容易,但在VisualStudio中可能很难
- 存储来自每个文件编译的警告(可能是“基于每个文件”)
- 每次“使用”文件输出产品时,都会调用/显示这些警告
然后,在那之后的某个时候,你可能会得到你的功能。这将是一个额外的好处,因为这样你就可以在你的飞行汽车中使用它。正如我所说,构建系统不需要做任何事情——IDE需要做。这也是对IDE的简单修改。我估计最多有几百行。@Kuba,这是构建系统或IDE。IDE是构建系统的代理。不确定可能是几百行--我们需要一个数据库来存储从构建文件和配置散列的消息,以及一个聪明的算法来决定何时/如何“查找”,因为我们可以将调试/发布产品混合到一个EXE中,为同一个EXE的中间版本提供不同的编译设置,一些警告取决于包含/使用的内容,尤其是所有模板内容。不过,60/40或70/30解决方案可能既便宜又有用。所有IDE都有这样一个“数据库”。我确信在QtCreator和VisualStudio中,都有一个模型类使用解析的消息,并且有一个视图显示它们。该视图在VS中命名为“错误列表”,在Qt Creator中命名为“问题”。现在,模型在重建时被清除,这就是必须更改的内容——只有当有新消息表明文件已生成时,才需要为每个文件清除模型。你几乎让我把这个添加到Qt Creator中,只是为了显示它相当简单。