Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 QtTest 并且刚刚更新到 Qt 5.9 并且有这种警告:
error: use of the 'fallthrough' attribute is a C++1z extension [-Werror,-Wc++1z-extensions]
Q_FALLTHROUGH()他们都指向qtestmouse.h 所以显然我需要添加一些东西,QMAKE_CXXFLAGS但无法找出究竟是什么。
Q_FALLTHROUGH()
qtestmouse.h
QMAKE_CXXFLAGS
我可以忽略这些警告,pragma但想进一步了解这个主题。
pragma
这很容易——答案在错误消息中,它说:
[-Werror,-Wc++1z-extensions]
这指定了哪些警告标志生成了此诊断。在我们的例子中,我们忽略了该-Werror部分,因为我们不想关闭整个行为,但是我们可以通过使用no-另一个标志的形式来关闭警告,即-Wno-c++1z-extensions.
-Werror
no-
-Wno-c++1z-extensions
(由于您支持它的编译器和版本,在您的情况下Q_FALLTHROUGH()正在扩展到 C++17构造。)[[fallthrough]]
[[fallthrough]]