3

以前、古いレガシーDLLで問題が発生し、リリースでクラッシュが発生しましたが、デバッグでは機能していました。最適化レベルを下げると問題が解決しました。正しく覚えていれば、当時はQt4.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

これらの設定が有効であることを確認するにはどうすればよいですか?問題がQt4.7と同じか、まったく関係がないかを知る必要があります。クラッシュは、DLLから特定の関数を呼び出すときに正確に発生します。これは、高度な最適化を使用したQt4.7リリースで問題を引き起こしたのと同じ関数です。

SDKがダウンロードできなくなったため、Qt 4.7に簡単にダウングレードすることすらできません。そのため、非常に古くて正確なmingwバージョンが必要になります。バージョンのわずかな違いが、大きな問題を引き起こすことはわかっています。

4

1 に答える 1

1

アプリケーションをqmakeすると、どの最適化レベルが適用されたかを明確に確認できます。(コンソール出力ログ内)

于 2013-03-25T12:41:14.393 に答える