qt4. кривая отладочная сборка? [решено]

Ответить
Роман Овсеевич
Сообщения: 6
Зарегистрирован: 08 окт 2023, 23:54
Operating system: Rosa

qt4. кривая отладочная сборка? [решено]

Сообщение Роман Овсеевич » 09 окт 2023, 00:10

Понимаю, что тема с qt4 уже неактуальна, но все же. Обнаружил неправильную работу класса QByteArray в отладочной версии.
Программа ниже должна выдавать два true в консоль (и это так в релизной версии и обоих версиях для qt5), однако QByteArray().isNull() выдает false!

Код: Выделить всё

#include <qbytearray.h>
#include <qdebug.h>
int main(int argc, char *argv[])
{
	qDebug() << QByteArray().isNull() << QByteArray(NULL).isNull();
	return 0;
}
Конструктор QByteArray() отрабатывает неправильно. Он реализован inline, в отличии от QByteArray(const char*), с которым все ок. Возможно, какое-то несоответствие заголовка отладочным бинарникам.
Последний раз редактировалось Роман Овсеевич 15 окт 2023, 10:57, всего редактировалось 1 раз.

irton
Сообщения: 705
Зарегистрирован: 30 окт 2021, 04:17
Operating system: Rosa Fresh Xfce

qt4. кривая отладочная сборка?

Сообщение irton » 09 окт 2023, 01:23

Что значит отладочная сборка? В каком пакете и какой версии проблема? Или вы сами себе конпеляете qt4?

Роман Овсеевич
Сообщения: 6
Зарегистрирован: 08 окт 2023, 23:54
Operating system: Rosa

qt4. кривая отладочная сборка?

Сообщение Роман Овсеевич » 09 окт 2023, 10:19

Речь о qt4 из репозитория, пакет lib64qt4-devel, версия последняя 4.8.7-17. Компиляция программы в отладочной конфигурации qt дает неверный результат, в релизной - ок.
Что значит отладочная сборка?
Я думал, для отладочной конфигурации используются отдельные библиотеки qt, собранные без оптимизации (иногда так делали), сейчас посмотрел, нет библиотеки одни и те же.

irton
Сообщения: 705
Зарегистрирован: 30 окт 2021, 04:17
Operating system: Rosa Fresh Xfce

qt4. кривая отладочная сборка?

Сообщение irton » 09 окт 2023, 11:01

сомневаюсь что это можно как-то исправить.

Роман Овсеевич
Сообщения: 6
Зарегистрирован: 08 окт 2023, 23:54
Operating system: Rosa

qt4. кривая отладочная сборка? [решено]

Сообщение Роман Овсеевич » 15 окт 2023, 10:54

Решение. Т.к. для себя (для разработки), то по рабоче-крестьянски собрал qt4 с отладкой в /usr/local/... из srpm.
1. Скачиваем srpm из http://mirror.rosalab.ru/rosa/rosa2021. ... 17.src.rpm .
2. Устанавливаем его командой "rpm -ihv ./qt4-4.8.7-17.src.rpm". В домашнем каталоге появилось ~/rpmbuild с подкаталогами SOURCES и SPECS.
3. Устанавливаем зависимости, необходимые для сборки. postgresql-devel почему-то не смог разрешиться, поставил его руками. Для остального команда "sudo dnf build-dep --spec ./qt4.spec" из каталога ~/rpmbuild/SPECS.
4. Подготавливаем к компиляции, применяем патчи командой "rpmbuild -bp qt4.spec". В ~/rpmbuild/BUILD/qt-everywhere-opensource-src-4.8.7 будут подготовленные исходники.
5. Запускаем конфигурацию, сборку и установку стандартным способом. Пример запуска конфигурации "./configure -prefix /usr/local -debug -opensource -confirm-license -nomake examples -nomake demos -nomake docs -system-sqlite -no-openssl -no-pch".
6. Для иконок qt4 нужна тема oxygen: "sudo dnf install oxygen-icon-theme".

Роман Овсеевич
Сообщения: 6
Зарегистрирован: 08 окт 2023, 23:54
Operating system: Rosa

qt4. кривая отладочная сборка? [решено]

Сообщение Роман Овсеевич » 20 дек 2023, 16:09

Еще один момент, связанный с Qt4 - отсутствие иконок. Чтобы они появились, нужно поставить тему иконок oxygen.

Ответить

Вернуться в «Обсуждение ROSA Fresh R12 (платформа 2021.1)»