Qt 编译程序时,系统更新后QBrush突然发出memcopy警告

Qt 编译程序时,系统更新后QBrush突然发出memcopy警告,qt,gcc,Qt,Gcc,我不知道为什么会这样。但每次我用安装的几个Qt版本编译应用程序时,我都会收到以下警告: In file included from /home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qbrush.h:50, from /home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qpalette.h:46, from /home/Qt5.9.2/5.9.2/gcc_64/inc

我不知道为什么会这样。但每次我用安装的几个Qt版本编译应用程序时,我都会收到以下警告:

In file included from /home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qbrush.h:50,
                 from /home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qpalette.h:46,
                 from /home/Qt5.9.2/5.9.2/gcc_64/include/QtWidgets/qwidget.h:48,
                 from /home/Qt5.9.2/5.9.2/gcc_64/include/QtWidgets/qdesktopwidget.h:44,
                 from /home/Qt5.9.2/5.9.2/gcc_64/include/QtWidgets/QDesktopWidget:1,
                 from ../src/../../CommonClasses/SQLConn/../../CommonClasses/common.h:6,
                 from ../src/../../CommonClasses/SQLConn/dbinterface.h:10,
                 from ../src/../../EyeExperimenter/src/sslclient/sslclient.h:10,
                 from ../src/../../EyeExperimenter/src/sslclient/ssldbclient.h:4,
                 from ../src/sslwrapper.h:6,
                 from ../src/main.cpp:3:
/home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qtransform.h: In member function ‘QTransform& QTransform::operator=(QTransform&&)’:
/home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qtransform.h:81:46: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class QTransform’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     { memcpy(this, &other, sizeof(QTransform)); return *this; }
                                              ^
/home/Qt5.9.2/5.9.2/gcc_64/include/QtGui/qtransform.h:57:20: note: ‘class QTransform’ declared here
 class Q_GUI_EXPORT QTransform

有谁能告诉我这个警告是什么,更重要的是,我该如何摆脱它?从我看到的情况来看,它与我的系统目前拥有的gcc8有关,但是我尝试在QtCreator的Qt Kits配置中更改编译器,警告仍然出现…

您使用qmake作为构建系统生成器,然后gnu make实际构建东西-Qt Creator只是在命令行上键入所有内容的快捷方式:)

通过将以下内容添加到
.pro
文件,然后在项目上重新运行qmake,可以将相关标志传递给编译器(例如,删除生成文件夹并重新生成):


在工具中更改编译器没有任何作用,因为Qt一直在创建一个名为g++的Makefile,它是g++-8的符号链接。我通过重新创建到g++-6的g++符号链接“修复”了这个问题。以防它对其他人有帮助…呃,只是禁用警告?它是无害的。你能告诉我怎么做吗?由于我在所有编译中都使用QtCreator,所以我不确定在何处传递命令行参数以禁用该WarningTanks。我一有空就试试看。谢谢
QMAKE_CFLAGS_WARN_ON += -Wno-class-memaccess
QMAKE_CXXFLAGS_WARN_ON += -Wno-class-memaccess
QMAKE_CFLAGS += -Wno-class-memaccess
QMAKE_CXXFLAGS += -Wno-class-memaccess