QtCore/QTextCodec 在 Qt 6 中找不到
QtCore/QTextCodec not found in Qt 6
升级到Qt 6.0后,编译器告诉我
qzxing/src/QZXing.cpp:16: error: 'QtCore/QTextCodec' file not found
qzxing/src/QZXing.cpp:16:10: fatal error: 'QtCore/QTextCodec' file not found
#include <QtCore/QTextCodec>
^~~~~~~~~~~~~~~~~~~
qzxing/src/QZXing.cpp:16:10: note: did not find header 'QTextCodec' in framework 'QtCore' (loaded from '/Applications/Qt/6.0.0/clang_64/lib')
根据Qt's documentation,加上QT += core5compat
即可导入。
但是,编译器告诉我“QT 中的未知模块:core5compat”。
如何解决这个问题?
QTextCodec class 已移至 core5compat 子模块,因此仅在 .pro 中添加它是不够的,但您必须将导入更正为:
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QtCore/QTextCodec>
#else
#include <QtCore5Compat/QTextCodec>
#endif
或者干脆
#include <QTextCodec>
另一方面,您必须安装此模块,因为默认情况下它没有,为此您必须使用 维护工具。
- 确保您已经安装了“Qt 5 兼容性模块”。
- 在 .pro 文件中添加
QT += core5compat
。
- 将
#include <QtCore/QTextCodec>
替换为#include <QTextCodec>
在.pro文件中添加greaterThan(QT_MAJOR_VERSION,5): QT += core5compat
升级到Qt 6.0后,编译器告诉我
qzxing/src/QZXing.cpp:16: error: 'QtCore/QTextCodec' file not found
qzxing/src/QZXing.cpp:16:10: fatal error: 'QtCore/QTextCodec' file not found
#include <QtCore/QTextCodec>
^~~~~~~~~~~~~~~~~~~
qzxing/src/QZXing.cpp:16:10: note: did not find header 'QTextCodec' in framework 'QtCore' (loaded from '/Applications/Qt/6.0.0/clang_64/lib')
根据Qt's documentation,加上QT += core5compat
即可导入。
但是,编译器告诉我“QT 中的未知模块:core5compat”。
如何解决这个问题?
QTextCodec class 已移至 core5compat 子模块,因此仅在 .pro 中添加它是不够的,但您必须将导入更正为:
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QtCore/QTextCodec>
#else
#include <QtCore5Compat/QTextCodec>
#endif
或者干脆
#include <QTextCodec>
另一方面,您必须安装此模块,因为默认情况下它没有,为此您必须使用 维护工具。
- 确保您已经安装了“Qt 5 兼容性模块”。
- 在 .pro 文件中添加
QT += core5compat
。 - 将
#include <QtCore/QTextCodec>
替换为#include <QTextCodec>
在.pro文件中添加greaterThan(QT_MAJOR_VERSION,5): QT += core5compat