Сбой QApplication при вызове конструктора

#c #qt #visual-studio-code #cmake #qt5

Вопрос:

У меня есть очень простое приложение QT. Использование QT 5.9.1.

В самой первой строке моего основного метода:

 int main(int argc, char * argv[]){
   QApplication a(argc, argv);
}
 

Мой вызов конструктора QApplication завершается сбоем.

Я попытался запустить это в отладчике gdb в коде VS, однако, потому что у меня нет ‘QApplication.cpp», Я не могу выполнить вызов конструктора. Я действительно не могу найти никакой другой информации о прошлом. Если я просто запущу GDB в терминале, я не смогу заставить приложение видеть библиотеки DLL платформы Windows

Есть ли какой-нибудь другой способ отладить это? Я не понимаю, почему это происходит, но у меня нет идей… я

Комментарии:

1. добавьте полученную ошибку

2. @DanielNudelman проблема в том, что я не получаю ошибку.. или в любом случае не вижу ее.. она просто вылетает :/

3. Возможно, у вас нет папок платформ или плагинов в вашем двоичном каталоге. Хотя в этом случае вы должны получить всплывающее диалоговое окно.

4. Может быть, то, что я скажу, неправильно, но если вы на самом деле return a.exec() все еще терпите крах?

Ответ №1:

У вас может возникнуть проблема с плагином или другая проблема с установкой. Определите эту переменную среды во время выполнения (в терминале).

 $ QT_DEBUG_PLUGINS=1 ./myapp
 

Если это не дает ничего полезного, вы можете попробовать запустить приложение в разделе strace , чтобы увидеть, к каким файлам оно пытается получить доступ, и если есть какой-либо подозрительный системный вызов, который дает подсказку:

 $ strace ./myapp
 

Ответ №2:

Этот же код работает и для меня.

Могу ли я предложить вам попробовать полный минимальный пример?

 int main(int argc, char * argv[])
{
    QApplication a(argc, argv);
    return a.exec();
}
 

Если это не сработает, переустановка библиотеки Qt покажется наиболее очевидным способом устранения неполадок. Возможно, какое-то несоответствие между заголовками и/или библиотеками.

Комментарии:

1. тьфу. Я думаю, что это может быть моим следующим шагом … это не работает!