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 ответа

Решение
  1. Убедитесь, что вы установили «Модуль совместимости с Qt 5».
  2. Добавлять QT += core5compat в файле .pro.
  3. Заменять #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

Другие вопросы по тегам