Я работаю с программным обеспечением, использующим qt3. Он отлично работает в системах x86-linux. Когда я попытался перенести его на Raspberry Pi 2, я получил странную ошибку компилятора. Google не смог мне помочь, и все, что я пробовал, не помогло.
Ошибка:
невозможно связать упакованное поле '((QChar*)this)->QChar::ucs' с 'ushort&{aka short unsigned int&}'
который относится к следующей части qstring.h
class Q_EXPORT QChar {
...
#ifdef Q_NO_PACKED_REFERENCE
ushort &unicode() { return *(&ucs); }
#else
ushort &unicode() { return ucs; } // Throws error
#endif
...
}
Конечно, я уже пытался определить Q_NO_PACKED_REFERENCE
, который просто перемещает ошибку на строку выше. Я также попытался явно определить архитектуру, float abi и cpu.
Вот моя среда:
- ЦП: ARMv7
- ОС: Убунту 16.04
- Компилятор: gcc/g++ 4.8.5 (Ubuntu/Linaro 4.8.5-4ubuntu2)
- Версия Qt: 3.3.8b из здесь (попробовано с x11 и встроенным)
Если вам интересно, почему я использую qt3 и старый gcc, то это потому, что мы хотим, чтобы наш исходный код был совместим с некоторыми старыми системами, которые мы используем.
Мой вопрос: В чем причина этой ошибки и как ее исправить? (Предпочтительно исправить без изменения заголовочных файлов qt3.)