除非重建整个项目,否则QT不会显示以前的构建警告

时间:2012-06-07 18:57:31

标签: qt build warnings

我不确定这是否是IDE的标准行为,但我个人觉得它很烦人。如果文件在构建时产生警告(未使用的变量,不匹配的ints / longs / etc。),如果修改了另一个文件并单击了“Build project”按钮,那么这些警告将停止显示。有关未修改代码的警告继续显示是否更有意义?有没有办法强迫这种行为?

2 个答案:

答案 0 :(得分:1)

当编译器发出警告时会显示警告 - 不幸的是,这是VS团队(至少到2008年)和Qt Creator团队的设计决策。

它似乎是标准行为,我不知道有任何选项可以覆盖它。它应该很容易在Qt Creator中修复,但可能很难在Visual Studio中修复,除非存在相关的API。对于VS,您需要编写一个加载项,并且需要一个可用的API,它允许您对构建过程的错误列表进行读写访问。如果存在这样的API,那么它也是一件简单的事情。

答案 1 :(得分:0)

这是“标准行为”,更具体地说,行为是地球上构建系统“设计为行为”的一个属性。

正如@Kuba所说,警告是由编译器发出的。它们不存储(除了在构建操作的“log-of-all-errors / warnings”中,IDE通常永远不会从后续构建操作中读取和摘录,这将是得到他们自己的新警告/错误的日志)。因此,除非编译器实际再次编译文件,否则您将不会再次看到警告,这是因为它们将是新的构建操作再次生成的 new 警告。

为了得到你想要的东西(一个聪明的想法,恕我直言),构建系统需要:

  • 存储每个文件编译的警告(可能是“基于每个文件”)
  • 每次文件输出产品被“使用”时,
  • 调用/显示这些警告

非常聪明。我不知道有任何系统可以做到这一点。它需要相当重要的IDE或构建产品的构建工具级管理,恕我直言,它们都没有做得好(但有些比其他更好)。

这是2012年,我们不仅错过了我们的飞行汽车,而且我们还缺少仅仅/快速构建仅需要使用全部核心的构建系统,同时可以轻松处理不同的配置。两者都是现在的预期。

然后,在那之后的某个时间,你可能会得到你的功能。这将是一个奖励,因为那时你可以在你的飞行汽车中使用它。