具有MSVC2015的 QT 会触发多个编译错误

QT with MSVC2015 trigger multiple compilation errors

本文关键字:编译 错误 MSVC2015 QT 具有      更新时间:2023-10-16

试图将我们的项目从 MSVC2013 的 Qt5.6 更新到 MSVC2015 的 Qt5.6,我得到了无穷无尽的错误列表:

  • C2059
  • C2143
  • C2447
  • C2059

所有这些似乎都与类型行有关:

Q_DECLARE_SHARED( WhateverHere )

我们在几台机器上进行新安装,所有机器都有相同的问题。

问题是:这些错误的原因是什么?这个问题的解决方案是什么?

已编辑:

经过一些进一步的研究,似乎我有一些兼容性代码,例如:

#ifdef _MSVC_DEV
#define noexcept throw() //not exactly the same
#endif

正如MSVC2015现在包含的noexcept,此宏将变为无效。这不会在那里显示正确的错误,而是在编译器中触发一些奇怪的状态,然后在Qt代码中抛出错误。