我正在尝试运行一个简单的示例程序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相关的任何内容,关于如何解决这个问题的任何想法?
谢谢!
答案 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命令提示符来构建和运行可执行文件。
谢谢!