Qt应用程序不在Qt Creator中执行

时间:2012-11-24 22:32:25

标签: c++ qt

我正在开发一个跨平台的Qt音频应用程序。在Linux上,应用程序运行没有任何问题,但在Windows上,从Qt Creator启动时应用程序不会执行。

当使用Release配置(或没有调试)运行时,Qt Creator只是说:

“该程序意外地完成了。”

如果我使用Debug配置(或调试)运行,Qt Creator会说:

“启动程序退出时,代码为0x0000135。”

由于谷歌搜索错误根本没有帮助,我决定将我的应用程序所需的每个.exe和.dll(需要的Qt库 - 如QtCore - 包括)复制到一个空目录,并且应用程序执行完美,就像在Linux下。

所以,我猜这是Windows无法找到我的应用程序所需的dll的问题。

上周末我将系统升级到Windows 8时出现此问题。之前(使用Windows 7)我没有遇到此类问题。

有没有人知道不涉及修改构建参数的解决方案(存储在文件.user中)?

我不想这样做,因为当我在Linux下测试应用程序时,这个文件将无效,我不想保留它的版本。

3 个答案:

答案 0 :(得分:2)

刚刚解决了!

可能是Qt Creator中的一个错误。

我的项目里面有4个子项目:main.exe,core.dll,side.dll,external.dll。

main.exe needs core.dll and side.dll
core.dll needs external.dll

由于main.exe只需要core.dll和side.dll,所以我没有添加对external.dll的引用。 Qt Creator应该足够智能以检测其依赖关系并相应地添加它们(好吧,最后这就是在Linux下发生的事情)。

由于它没有正确检测到依赖项,因此当我尝试从Qt Creator运行main.exe时,它不会构建正确的PATH环境变量,从而导致问题。

通过在我的main.pro文件中添加以下行来解决它:

win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../external/release/ -lexternal
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../external/debug/ -lexternal

#INCLUDEPATH += $$PWD/../external
win32: DEPENDPATH += $$PWD/../external

注意:我更改了模块名称以便更好地理解。

答案 1 :(得分:1)

我想这是因为执行环境中的路径不再包含Qt-DLL的路径。转到项目设置并检查“调试和执行”设置中的PATH变量 在我的情况下,例如: C:\ QtSDK \ mingw \ bin; C:\ QtSDK \ Desktop \ Qt \ 4.8.1 \ mingw \ lib; ...其他路径......

问候。

答案 2 :(得分:0)

问题肯定是一些丢失的dll!我发现当我将dll直接放入带有可执行文件的文件夹(例如png3.dll)中,然后从qt creator运行它时,它会运行!! 我做了什么:在你的输出目录(可执行文件所在)你打开你的可执行文件(双击),Windows显示缺少的DLL名称。您找到它们并直接复制到该文件夹​​中。然后从Qt创建者运行应用程序!如果dll合适,你应该成功。之后,您尝试从exec文件夹中删除dll并通过qt creator运行应用程序,直到它再次抛出错误为止。这样你就找到了丢失的dll。之后,将“构建环境”中的qt creator“projects”设置中的dll路径添加到“Path”变量中。