无法运行简单的Qt示例程序,模糊错误

时间:2011-04-29 08:56:12

标签: qt cmake

我正在尝试运行一个简单的示例程序Qt dialog example。 我使用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 个答案:

答案 0 :(得分:2)

可能是程序启动时找不到你的Qt dll。

您可以通过将Qt dll文件从Qt的Bin文件夹复制到程序可执行文件所在的文件夹来进行检查。

或者设置PATH系统变量以包含Qt库所在的文件夹,windows下的dll。

如果你在windows下,那么你可以使用一个工具。

Depedency Walker,启动它,启动“visual studio命令提示符”并输入“depends”

拖动&amp;将应用程序文件拖放到依赖性walker中,您应该看到它无法加载的dll。

请注意,该程序并不总是准确,但在您的情况下它应该可以工作。

答案 1 :(得分:0)

我使用了该工具,发现似乎缺少一些dll。这些是MSVCP90D.DLL,MSVCR90D.DLL,GPSVC.DLL,IESHIMS.DLL。

经过一些谷歌搜索后,似乎问题可能是使用VS2010和VS 2008的预编译Qt二进制文件。现在我用VS 2010重新编译了Qt,但问题仍然存在。

但是在重新编译时我还编译了示例,包括我试图运行的示例。似乎Qt的编译示例运行得很好,但是我自己的编译版本一直给出相同的错误,但dll仍然缺失..

这怎么可能,我正在使用相同的Qt include / binary目录进行编译?

提供的信息:  CMakeLists.txt:

  

cmake_minimum_required(VERSION 2.6)   PROJECT(测试)

     

FIND_PACKAGE(的Qt4)   包括:($ {} QT_USE_FILE)   ADD_DEFINITIONS($ {QT_DEFINITIONS})

     

LINK_LIBRARIES($ {QT_LIBRARIES})

     

set(all_SOURCES main.cpp)   QT4_AUTOMOC($ {} all_SOURCES)   add_executable(Test $ {all_SOURCES})   target_link_libraries(测试   $ {LINK_LIBRARIES})

我在Windows 7上使用Visual Studio 2010.我正在使用VS2010命令提示符来构建和运行可执行文件。

谢谢!