Russian Qt Forum
Ноябрь 26, 2024, 08:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: конфликт между QPaintDevice и QApplication  (Прочитано 3520 раз)
StogovOleg
Гость
« : Сентябрь 16, 2009, 00:33 »

Мой проект состоит из исполняемого файла и моих же библиотек. На компьютере где собираю проект все работает.
Беру библиотеки и исполняемый файл и переношу на другой комп. При запуске исполняемого файла система выдает что-то типа "QPaintDevice : error QApplication must construct before QPaintDevice".
Переношу исходники на ту же машину, собираю - и все начинает работать.
В чем причина такого поведения?
Qt 3.3.3 + Linux
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Сентябрь 16, 2009, 00:44 »

Покажи код где создается QApplication.

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


Код
C++ (Qt)
int main(...)
{
   QApplication app(...);
 
   //create some widgets
 
   return app.exec();
}
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Makss
Гость
« Ответ #2 : Сентябрь 16, 2009, 07:59 »

на обоих машинах одна и та же версия Qt стоит?
Записан
StogovOleg
Гость
« Ответ #3 : Сентябрь 17, 2009, 10:39 »

на обоих машинах все версии ПО одинаковы
в функции main(...)  объект QApplication создается первым, до него ничего нет
еще раз напоминаю если перенести бинарники, то программа не запускается, а в консоль пишет эту ошибку, а если перенести исходники(главного проекта и библиотек) и скомпилировать все на машине, то все работает
 Непонимающий
Записан
StogovOleg
Гость
« Ответ #4 : Сентябрь 17, 2009, 10:44 »

Есть библиотеки, которые статически линкуются к проекту, в некоторых есть свой GUI (не все библиотеки разработаны нами, используем сторонние продукты), скорее всего из-за них. Тогда понятно почему вперед QApplication может создаваться QPaintDevice, ведь их код отрабатывается раньше, чем доходим до функции main(...). Или я не прав? Но почему после компиляции исходников проблема пропадает?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 23.