Qt программа аварийно завершается

Я немного новичок в C ++ и Qt 5.2.1. Я на самом деле учусь использовать Qt. Чтобы сделать это как можно проще, я использую Qt Creator 3.0.1.

Я написал этот маленький кусочек кода в файле main.cpp моего проекта:

#include #include int main(int argc, char *argv[])

И файл .pro (по умолчанию):

SOURCES += main.cpp

Я попытался заставить его работать, затем я получил проблему «QApplication: нет такого файла или каталога».

Затем я добавил «QT + = widgets» в файл .pro (полный файл):

SOURCES += main.cpp QT += widgets

И теперь я получаю:

Starting . The program has unexpectedly finished. crashed

Пожалуйста, скажите мне, как заставить это работать.
Спасибо за чтение и за вашу помощь.

(ОС: Windows 7, Debug: Desktop Qt 5.2.1 MinGW 32bit)

16:06:54: Running steps for project test. 16:06:54: Configuration unchanged, skipping qmake step. 16:06:54: Starting: «C:QtToolsmingw48_32binmingw32-make.exe»C:/Qt/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory ‘C:/Users/PLD/Documents/PLD/Projets Codages/Qt/Qt/build-test-Desktop_Qt_5_2_1_MinGW_32bit-Debug’ mingw32-make[1]: Nothing to be done for ‘first’. mingw32-make[1]: Leaving directory ‘C:/Users/PLD/Documents/PLD/Projets Codages/Qt/Qt/build-test-Desktop_Qt_5_2_1_MinGW_32bit-Debug’ 16:06:55: The process «C:QtToolsmingw48_32binmingw32-make.exe» exited normally. 16:06:55: Elapsed time: 00:01.

Starting C:UsersPLDDocumentsPLDProjets CodagesQtQtbuild-test-Desktop_Qt_5_2_1_MinGW_32bit-Debugdebugtest.exe. The program has unexpectedly finished. C:UsersPLDDocumentsPLDProjets CodagesQtQtbuild-test-Desktop_Qt_5_2_1_MinGW_32bit-Debugdebugtest.exe crashed

Решение

Код выглядит хорошо.

Создание первой программы в Qt Creator

Одним из объяснений того, что вы получите, будут несовместимые библиотеки DLL (например, Debug vs Release builds или MSVC vs MinGW). Вы можете запустить зависящий от вас файлexe .exe и проверить, не забирает ли он библиотеки из неожиданных мест.

Другие решения

Я посмотрел всю сеть, ища, как установить Qt5. Там не хватает учебников, и это очень удивительно, чтобы заставить его работать должным образом на Windows.

Читайте также:
Инструкция по программе бухгалтерия

Я наконец-то установил Qt4, который стал более стабильным и проще для работы.

Источник: web-answers.ru

Приложение Qt5 аварийно завершает работу при запуске из вне Qt

У меня странная проблема, которая появилась только недавно. Когда я получаю внешний двоичный код из моего приложения Qt, приложение вылетает с ошибкой:

Exception Type: EXC_CRASH (SIGABRT)

Но когда я запускаю его из «сборки и запуска» внутри Qt Creator, все работает нормально, когда я получаю точку в своем приложении, где я удаляю exetrnal двоичный файл. Это функция, которую я ударил, когда приложение вылетает извне Qt creator

Запуск Qt приложений .exe вне Qt Creator


QString Api::getVideoFrame(QString filename, QString position) < const QString ffmpeg = QDir::currentPath()+»/ffmpeg»; //mac version QProcess process; QStringList args; args

Он также сбой при доступе к другим внешним двоичным файлам, а не только ffmpeg в этом случае. У меня такое ощущение, что оно имеет какое-то отношение к QDir :: currentPath(), потому что, когда я испортил путь, он также падает изнутри Qt Creator. очевидно, я добавил соответствующие исполняемые файлы рядом с исполняемым файлом в папке Contents/MacOS/ Я действительно не знаю, как отлаживать это. Любой ключ, как решить это?

Vincent Duprez 05 сен. 2013, в 11:47
Поделиться

Для начала, вы можете отладить его в отладчике? Как и ГДБ . Просто запустите отладчик из командной строки и посмотрите, сможете ли вы точно определить место сбоя.

Источник: overcoder.net

Приложение Qt аварийно завершает работу при выходе, ОС применяет «отказоустойчивую оболочку кучи»

Я не могу выделить причину сбоя приложения при выходе. Что еще больше сбивает с толку, так это то, что он не всегда дает сбой, иногда происходит, иногда нет, и кажется, что он совершенно произвольный.

Читайте также:
Для чего нужна программа java update

В этом примере в основном создается пользовательский поставщик изображений, который загружает статический запрос API карт Google в виде изображения PNG для отображения в QML. Сам провайдер изображений работает, я сначала подозревал, что проблема может заключаться в создании экземпляра диспетчера доступа к сети в стеке, но это не так, я получаю то же поведение при его динамическом создании. Забавно, что авария, похоже, не соответствует чему-то конкретному. Просто запуск и закрытие приложения иногда приводит к сбою без какого-либо взаимодействия с ним, но в большинстве случаев это не приводит к сбою без какого-либо взаимодействия. Иногда многократные взаимодействия с центром карты и масштабированием не приводят к сбою при выходе, но в большинстве случаев это происходит.

Другим подозрением является цикл обработки событий, который я создаю для того, чтобы «заблокировать» метод поставщика изображений во время выполнения сетевого запроса. Из-за дизайна провайдера изображений, изображение должно быть возвращено тем же методом, который его запрашивает, другими словами, я не могу использовать «рекомендуемый» подход — просто запустить запрос из метода и захватить его с подключением его completed сигнал к другому методу. Но, похоже, это тоже не так, поскольку провайдеру всегда удается предоставить изображение, которое, как я полагаю, не вызывает проблем. По крайней мере, не напрямую, но, может быть, какой-то побочный эффект доступа к сети?

Кстати, Qt издает некоторые предупреждения только при первом использовании диспетчера доступа к сети. С Qt 5.2 я получил только эти четыре:

QSslSocket: cannot resolve TLSv1_1_client_method QSslSocket: cannot resolve TLSv1_2_client_method QSslSocket: cannot resolve TLSv1_1_server_method QSslSocket: cannot resolve TLSv1_2_server_method QSslSocket: cannot resolve SSL_select_next_proto

. и после обновления до новой версии 5.3.1 в надежде удалить эти предупреждения на самом деле появилось еще два в дополнение к предыдущим четырем:

Читайте также:
Как удалять программы с revo uninstaller pro

QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb QSslSocket: cannot resolve SSL_get0_next_proto_negotiated

Может быть, эти предупреждения как-то связаны с аварией?

Вот также информация appcrash:

Fault Module Name: ntdll.dll Fault Module Version: 6.1.7601.17725 Fault Module Timestamp: 4ec49b8f Exception Code: c0000005 Exception Offset: 000332a0 OS Version: 6.1.7601.2.1.0.256.1 Locale ID: 1033 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

Информация о платформе: Windows 7 x64, стандартная 32-битная сборка Qt с GCC

Вот соответствующий код:

class MapReader : public QQuickImageProvider < public: explicit MapReader() : QQuickImageProvider(QQuickImageProvider::Pixmap, QQmlImageProviderBase::ForceAsynchronousImageLoading) < >QPixmap requestPixmap(const QString requestedSize) < QNetworkAccessManager m; Q_UNUSED(requestedSize) Q_UNUSED(size) QEventLoop loop; QObject::connect(loop, SLOT(quit())); QNetworkReply * r = m.get(QNetworkRequest(QUrl(id))); loop.exec(); if (r->error()) < qDebug() errorString(); r->deleteLater(); return QPixmap(); > QPixmap p; p.loadFromData(r->readAll()); r->deleteLater(); return p; > >;
Rectangle < id: root width: 360 height: 360 property string url : ‘image://map/http://maps.googleapis.com/maps/api/staticmap?center=’ + n + ‘,’ + e + ‘size=’ + width + «x» + height + ‘ id: t repeat: false interval: 100 running: false onTriggered: < placeholder.source = root.url >> function refresh() < if (t.running) t.restart(); else t.start() >Image < id: placeholder anchors.fill: parent >MouseArea < anchors.fill: parent onClicked: < var xOffset = (mouseX / width — 0.5) * (360 / Math.pow(2, zoom.value)) var yOffset = (mouseY / height — 0.5) * (360 / Math.pow(2, zoom.value)) console.log(xOffset + » » + yOffset) root.n = root.n — yOffset root.e = root.e + xOffset root.refresh() >> Slider < id: zoom value: 17 maximumValue: 21 minimumValue: 1 stepSize: 1 x: 80 y: parent.height — 25 width: parent.width — 90 onValueChanged: root.refresh() >>

Источник: stackru.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru