在 MSVC 的发布模式下初始化 QApplication 失败
Posted
技术标签:
【中文标题】在 MSVC 的发布模式下初始化 QApplication 失败【英文标题】:Initializing a QApplication fails in release mode of MSVC 【发布时间】:2015-02-04 09:52:50 【问题描述】:我正在 MSVC 中创建一个 Qt 应用程序。
在我的main
方法中,我使用QApplication app(argc, argv);
创建了一个QApplication
当我在DEBUG mode
中构建程序时,程序运行良好。但是,当我在RELEASE mode
中构建程序时,程序在QApplication app(argc, argv);
行关闭。
当程序关闭时我没有收到错误消息,所以我相信它不是崩溃,而是一些内置的 QApplicaiton 对错误的响应。
关于为什么会发生这种情况的任何建议?
【问题讨论】:
到底是怎么崩溃的(可能有一些错误信息)? 由于是release模式,所以不会出现错误。程序只是关闭... 您的 QT 库是如何构建的?也许您只有调试版本,而没有发布版本? 您是否还加载了其他一些库 - 由其他一些编译器编译?这看起来确实像一些库 ABI 问题。 QApplication 不应轻易崩溃。 @BrunoLubascher 如果这解决了您的问题,您可以考虑自行回答您的问题。这样一来,任何通过搜索类似问题找到您的问题的人都可以使用该解决方案。 【参考方案1】:问题是 Qt 需要一些我的程序可执行目录中缺少的 dll。
因为是发布模式,所以没有弹出错误,所以程序就直接关闭了。
为了解决这个问题,我必须使用DependencyWalker 来确定我的程序使用了哪些 dll。在找出需要哪些 dll 之后,我将它们放在可执行文件的目录中。一切都按预期进行。
【讨论】:
以上是关于在 MSVC 的发布模式下初始化 QApplication 失败的主要内容,如果未能解决你的问题,请参考以下文章