QtCore/QTextCodec не найден в 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 , его можно импортировать, добавив
QT += core5compat
. Однако компилятор сказал мне, что «Неизвестные модули в QT: core5compat».
Как решить эту проблему?
3 ответа
Решение
- Убедитесь, что вы установили «Модуль совместимости с Qt 5».
- Добавлять
QT += core5compat
в файле .pro. - Заменять
#include <QtCore/QTextCodec>
к#include <QTextCodec>
Класс QTextCodec был перемещен в подмодуль core5compat, поэтому недостаточно добавить его в .pro, но вы должны исправить импорт:
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QtCore/QTextCodec>
#else
#include <QtCore5Compat/QTextCodec>
#endif
Или просто
#include <QTextCodec>
С другой стороны, вы должны установить этот модуль, поскольку он не поставляется по умолчанию, и для этого вы должны использовать Maintenance Tool.
Добавлять
greaterThan(QT_MAJOR_VERSION,5): QT += core5compat
в файле .pro