не может запустить простой пример программы Qt, неопределенная ошибка - PullRequest
0 голосов
/ 29 апреля 2011

Я пытаюсь запустить простой пример программы Пример диалога Qt . Я скомпилировал его с помощью cmake и nmake, но после запуска получаю:

Невозможно правильно запустить приложение (0xc0150002). Нажмите кнопку ОК, чтобы закрыть приложение.

main.cpp, который я использую:

 #include <QApplication>
 #include "dialog.h"


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

Самое простое, что я могу получить на работе, это

 #include <QApplication>
 #include <iostream>
 #include "dialog.h"

 using namespace std;

 int main(int argc, char *argv[])
 {
   cout << "test!" << endl;
     // QApplication app(argc, argv);
     // Dialog dialog;
     //return dialog.exec();
  return 0;
  }

Так что я не могу использовать что-либо связанное с Qt, какие-либо идеи о том, как решить эту проблему?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Возможно, что ваши dll Qt не найдены при запуске программы.

Вы можете проверить это, скопировав dll-файлы Qt из папки Bin Qt в папку, где находится исполняемый файл вашей программы.

Или задайте в системной переменной PATH папку, в которой находятся библиотеки Qt, dll под окнами.

Если вы находитесь под окнами, то есть инструмент, который вы можете использовать.

Depedency Walker, чтобы запустить его, запустите «командную строку visual studio» и введите «зависящий»

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

Обратите внимание, что программа не всегда точна, но в вашем случае она должна работать.

0 голосов
/ 11 мая 2011

Я использовал инструмент и обнаружил, что несколько DLL, кажется, отсутствуют.Это MSVCP90D.DLL, MSVCR90D.DLL, GPSVC.DLL, IESHIMS.DLL.

После некоторого поиска в Google казалось, что проблема может заключаться в использовании VS2010 с предварительно скомпилированными двоичными файлами Qt для VS 2008. Теперь я перекомпилировал Qt с VS2010, но проблема остается той же.

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

Как это возможно, я компилирую с тем же Qt include / binary dir?

Запрашиваемая информация: CMakeLists.txt:

cmake_minimum_required (ВЕРСИЯ 2.6) ПРОЕКТ (тест)

FIND_PACKAGE (Qt4) ВКЛЮЧИТЬ ($ {QT_USE_FILE}) ADD_DEFINITIONS ($ {QT_DEFINITIONS})

LINK_LIBRARIES ($ {QT_LIBRARIES}) *

set (all_SOURCES main.cpp) QT4_AUTOMOC ($ {all_SOURCES} )_ключение_объектов(Тест $ {LINK_LIBRARIES})

Я использую Visual Studio 2010 в Windows 7. Я использую командную строку VS2010 для сборки и запуска исполняемого файла.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...