繁体   English   中英

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

[英]Qt application does not execute inside Qt Creator

我正在开发一个跨平台的 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 下测试应用程序时,这个文件将失效,我不想保留它的版本。

刚刚解决了!

可能是 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

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

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

问候。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM