#c #qt #qt6
#c #qt #qt6
Вопрос:
После обновления до 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».
Как решить эту проблему?
Комментарии:
1. Для новых пользователей Qt 6 вы можете использовать QStringConverter и его производные классы: QStringDecoder и QStringEncoder .
Ответ №1:
- Убедитесь, что у вас установлен «Модуль совместимости Qt 5».
- Добавьте
QT = core5compat
в файл .pro. - Заменить
#include <QtCore/QTextCodec>
на#include <QTextCodec>
Комментарии:
1. Поскольку QTextCodec теперь находится в библиотеке совместимости, существует ли класс замены?
2. @albert QStringConverter — это класс замены QTextCodec.
Ответ №2:
Класс QTextCodec был перемещен в подмодуль core5compat, поэтому недостаточно добавить его в .pro, но вы должны исправить импорт в:
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QtCore/QTextCodec>
#else
#include <QtCore5Compat/QTextCodec>
#endif
Или просто
#include <QTextCodec>
С другой стороны, вы должны установить этот модуль, поскольку он не поставляется по умолчанию, и для этого вы должны использовать инструмент обслуживания.
Комментарии:
1. Поскольку QTextCodec теперь находится в библиотеке совместимости, существует ли класс замены?
2. @albert QStringConverter — это класс замены QTextCodec.
Ответ №3:
добавить greaterThan(QT_MAJOR_VERSION,5): QT = core5compat
в файл .pro
Комментарии:
1. Пожалуйста, будьте более подробными, предоставьте исчерпывающий ответ.