#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. тьфу. Я думаю, что это может быть моим следующим шагом … это не работает!