Russian Qt Forum

Qt => Общие вопросы => Тема начата: StogovOleg от Сентябрь 16, 2009, 00:33



Название: конфликт между QPaintDevice и QApplication
Отправлено: StogovOleg от Сентябрь 16, 2009, 00:33
Мой проект состоит из исполняемого файла и моих же библиотек. На компьютере где собираю проект все работает.
Беру библиотеки и исполняемый файл и переношу на другой комп. При запуске исполняемого файла система выдает что-то типа "QPaintDevice : error QApplication must construct before QPaintDevice".
Переношу исходники на ту же машину, собираю - и все начинает работать.
В чем причина такого поведения?
Qt 3.3.3 + Linux


Название: Re: конфликт между QPaintDevice и QApplication
Отправлено: pastor от Сентябрь 16, 2009, 00:44
Покажи код где создается QApplication.

QApplication должен следовать перед созданием гуя. Должно быть что-то вроде такого:


Код
C++ (Qt)
int main(...)
{
   QApplication app(...);
 
   //create some widgets
 
   return app.exec();
}


Название: Re: конфликт между QPaintDevice и QApplication
Отправлено: Makss от Сентябрь 16, 2009, 07:59
на обоих машинах одна и та же версия Qt стоит?


Название: Re: конфликт между QPaintDevice и QApplication
Отправлено: StogovOleg от Сентябрь 17, 2009, 10:39
на обоих машинах все версии ПО одинаковы
в функции main(...)  объект QApplication создается первым, до него ничего нет
еще раз напоминаю если перенести бинарники, то программа не запускается, а в консоль пишет эту ошибку, а если перенести исходники(главного проекта и библиотек) и скомпилировать все на машине, то все работает
 ???


Название: Re: конфликт между QPaintDevice и QApplication
Отправлено: StogovOleg от Сентябрь 17, 2009, 10:44
Есть библиотеки, которые статически линкуются к проекту, в некоторых есть свой GUI (не все библиотеки разработаны нами, используем сторонние продукты), скорее всего из-за них. Тогда понятно почему вперед QApplication может создаваться QPaintDevice, ведь их код отрабатывается раньше, чем доходим до функции main(...). Или я не прав? Но почему после компиляции исходников проблема пропадает?