我once had a problem使用旧的旧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版本,我知道微小的版本差异会导致重大问题。 子>
答案 0 :(得分:1)
当您编写应用程序时,您可以清楚地看到应用了哪个优化级别。 (在控制台输出日志中)