在编译程序时,我遇到了各种与qvariant有关的编译错误。我没有修改Qt-libs/source,那么为什么我会出现这些错误呢?(他们是什么意思(
/Qt/5.9.9/gcc_64/mkspecs/linux-g++ -o tl_ansi_codes.o /mydir/tl_ansi_formatting/tl_ansi_codes.cpp
In file included from /opt/Qt/5.9.9/gcc_64/include/QtCore/qlocale.h:43,
from /opt/Qt/5.9.9/gcc_64/include/QtCore/qtextstream.h:46,
from /opt/Qt/5.9.9/gcc_64/include/QtCore/qdebug.h:49,
from /opt/Qt/5.9.9/gcc_64/include/QtCore/QDebug:1,
from /mydir/tl_ansi_formatting/tl_ansi_codes.cpp:9:
/opt/Qt/5.9.9/gcc_64/include/QtCore/qvariant.h: In constructor ‘QVariant::QVariant(QVariant&&)’:
/opt/Qt/5.9.9/gcc_64/include/QtCore/qvariant.h:265:25: warning: implicitly-declared ‘constexpr QVariant::Private& QVariant::Private::operator=(const QVariant::Private&)’ is deprecated [-Wdeprecated-copy]
265 | { other.d = Private(); }
| ^
/opt/Qt/5.9.9/gcc_64/include/QtCore/qvariant.h:380:16: note: because ‘QVariant::Private’ has user-provided ‘QVariant::Private::Private(const QVariant::Private&)’
380 | inline Private(const Private &other) Q_DECL_NOTHROW
| ^~~~~~~
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -Dproject_vls=1 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I/mydir//project -I. -
/opt/Qt/5.9.9/gcc_64/include/QtCore/qvariant.h: In constructor ‘QVariant::QVariant(QVariant&&)’:
/opt/Qt/5.9.9/gcc_64/include/QtCore/qvariant.h:265:25: warning: implicitly-declared ‘constexpr QVariant::Private& QVariant::Private::operator=(const QVariant::Private&)’ is deprecated [-Wdeprecated-copy]
265 | { other.d = Private(); }
可用的最佳解决方案就是忽略它,或者升级到qt6。要忽略警告,只需添加
QMAKE_CXXFLAGS += -Wno-deprecated-copy
在所有.pro文件中。这将忽略所有不推荐使用的复制警告;也可以使用QMAKE_CXXFLAGS_debug或QMAKE_XXFLAGS_release忽略调试或发布构建。