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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Прога вылетает при сборке под Вин, в Лин все Ок. Qt-4.4.0 + qwt-5.1.1  (Прочитано 9395 раз)
niXman
Гость
« : Июнь 18, 2008, 14:24 »

Программа, в Линукс работает. Но в Виндавз вылетает с сообщением в консоль:
Цитировать
QWidget: Must construct a QApplication before a QPaintDevice

Собираю из сырцов.
Использую:
qt-4.4.0 opensource
qwt-5.1.1

В чем трабла ? Подскажите.
Записан
ритт
Гость
« Ответ #1 : Июнь 18, 2008, 14:37 »

мне кажется, из сообщения всё ясно
но для 99%-ной уверенности можешь привести код головной функции
Записан
niXman
Гость
« Ответ #2 : Июнь 18, 2008, 14:42 »

Я то же понял что говориться в сообщении. Но это не так!
Код:
int main(int argc, char ** argv) {
    QApplication app( argc, argv );
    DialogImpl win;
    win.show();
    app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
    return app.exec();
}
Записан
ритт
Гость
« Ответ #3 : Июнь 18, 2008, 14:46 »

а чем собираем? как собрана кутя?
попробуй полную пересборку

если проект открытый, могу попробовать собрать у себя.
Записан
niXman
Гость
« Ответ #4 : Июнь 18, 2008, 15:16 »

Qt и qwt собирал в MSVC-2008 debug/release.
Странная проблема. Остальные проекты, не использующие qwt работают.
Записан
ритт
Гость
« Ответ #5 : Июнь 18, 2008, 15:21 »

а если попробовать qwt-5.0.2?
Записан
niXman
Гость
« Ответ #6 : Июнь 18, 2008, 16:16 »

а если попробовать qwt-5.0.2?
Нужно пробовать.
Но сообщение выдает не qwt а [Qt] - Непонимающий нет мыслей! (((
Записан
Steven_Orko
Гость
« Ответ #7 : Июнь 19, 2008, 09:47 »

Программа, в Линукс работает. Но в Виндавз вылетает с сообщением в консоль:
Цитировать
QWidget: Must construct a QApplication before a QPaintDevice


Это означает, что в каком-то модуле конструируется объект, использующий QPaintDevice. Скорее всего статически. И происходит это ДО вызова функции int main(int argc, char* argv[]). Т.е. получается, что при загрузке программы в память и нициализации требуемых библиотек инициализируются статические объекты. Один из них или несколько используют PaintDevice.  Так что головная функция здесь не причем. Проверь в своем коде на предмет наличия таких объектов. Другого варианта точно нет.
Записан
Tonal
Гость
« Ответ #8 : Июнь 19, 2008, 11:07 »

Есть другой вариант: qwt5.dll собран со статической Qt.
В этом случае, в qwt5.dll будет свои экземпляры глобальных переменных.
Поэтому, при создании в своей проге экземпляра QApplication-а виджеты QWT его не увидят.
Записан
Steven_Orko
Гость
« Ответ #9 : Июнь 19, 2008, 13:39 »

Есть другой вариант: qwt5.dll собран со статической Qt.
OFF: Это не другой вариант. Просто частный случай. )))))))))))
Записан
niXman
Гость
« Ответ #10 : Июнь 20, 2008, 12:38 »

Проблема решена.
Делов том, что такое происходит только при сборке qwt в debug режиме.
Всем Спасибо.
Записан
Bojo
Гость
« Ответ #11 : Октябрь 10, 2009, 11:50 »

Как проблему то решили? У меня тоже самое.
Записан
andrewshkovskii
Гость
« Ответ #12 : Октябрь 10, 2009, 12:17 »

В ответе выще же написано, что при сборке  приложений с qwt в режиме debug такое происходит.
Записан
Bojo
Гость
« Ответ #13 : Октябрь 10, 2009, 14:50 »

И что? А если надо debug? К тому же у меня и в релизе то же самое.
Записан
KuZ
Гость
« Ответ #14 : Март 24, 2010, 21:41 »

Проблема решена.
Делов том, что такое происходит только при сборке qwt в debug режиме.
Всем Спасибо.
Такая же проблема, с релизом все нормально работает но в дебаге вылетает(.exe завершился с кодом -1073741515 и вот эта строка смущает mingw32-make[1]: Nothing to be done for `first'), подскажите как решили? Возможно в через дебаге что-то найду. 
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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