如何检查Qt中的优化级别?

如何检查Qt中的优化级别?,qt,Qt,我使用了一个旧的遗留DLL,它在发行版中导致崩溃,但在调试中工作。降低优化级别解决了这个问题。如果我没记错的话,我当时用的是Qt4.7 现在,升级到Qt5.0.1后,同样的崩溃再次发生,但现在都在调试和发布中。我找到了在新Qt中设置优化级别的方法,但似乎没有任何效果: QMAKE_CXXFLAGS_RELEASE -= -O QMAKE_CXXFLAGS_RELEASE -= -O1 QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE -=

我使用了一个旧的遗留DLL,它在发行版中导致崩溃,但在调试中工作。降低优化级别解决了这个问题。如果我没记错的话,我当时用的是Qt4.7

现在,升级到Qt5.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
如何确保这些设置有效?我需要知道问题是否与Qt4.7中的问题相同,或者完全无关。崩溃恰好发生在从DLL调用某个函数时,该函数在Qt4.7版本中以高度优化导致了问题

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

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

最有可能的是,真正的问题是代码中的其他地方,崩溃发生与否只是相应标志的副作用(特别是,因为您现在说Qt 5似乎与设置无关)。你试过使用valgrind和/或调试器吗?@Andreas:我使用调试器是为了确保崩溃发生在从DLL调用那个臭名昭著的函数时。在Qt4.7中,崩溃发生在同一个地方,优化设置的改变解决了这个问题。即使现在,不调用该函数也不会导致崩溃。这可能是DLL中固有的问题,不幸的是,我没有它的任何源代码。是否有DLL的发行版和调试版本?这可能与此有关。