3

曾经遇到过一个旧的遗留 DLL 的问题,它导致发布时崩溃,但在调试中工作。降低优化级别解决了这个问题。如果我没记错的话,我当时使用的是 Qt 4.7。

现在,升级到 Qt 5.0.1 后,同样的崩溃再次发生,但现在在调试和发布中。在新的Qt中找到了设置优化级别的方法,但是好像没有任何效果:

QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE -= -O3

QMAKE_CXXFLAGS_RELEASE += -O

同样对于

QMAKE_CXXFLAGS_DEBUG

如何确保这些设置有效?我需要知道问题是否与 Qt 4.7 中的问题相同,或者完全不相关。崩溃恰好发生在从 DLL 调用某个函数时,该函数在经过高度优化的 Qt 4.7 版本中导致该问题。

我什至不能轻易降级到 Qt 4.7,因为 SDK 不再可供下载,所以我需要一个非常旧且精确的 mingw 版本,我知道微小的版本差异会导致重大问题。

4

1 回答 1

1

当您 qmake 应用程序时,您可以清楚地看到应用了哪个优化级别。(在控制台输出日志中)

于 2013-03-25T12:41:14.393 回答