Hi all,

qt-win-opensource-4.3.3-mingw.exe misbehaviour, aka how to compile Qt -release with flag and -O0 added to QMAKE_CXXFLAGS_RELEASE.

After a lot of trouble and different tests I found that probably -O2 flag is broken for mingw bundled with Qt-4.3.3

The long version:

I have downloaded and installed Qt then :

1) compiled Qt with -static -release, compiled application with -release (qmake -config release + make) --> my app does not even starts!

2) Compiled my application with debug (qmake -config debug + make) --> starts but at random times there appear starange artifacts to regarding painting and also application is veery slow.

3) compiled Qt with -shared -release, compiled application with -release (qmake -config release + make) --> does not even starts!

4) Compiled my application with debug (qmake -config debug + make) --> starts but at random times there appear starange artifacts to painting and also application is veeery slow.

5) Previously I had a Qt 4.3.1 compiled with -debug -shared and my application compiled with -debug and everything was OK. Now it is difficult for me to redo the test whit QT4.3.3 -debug because I'm low on disk space and compiling with debug takes _a lot_ of disk space.



Some additional (smaller problem):

1) After upgrade qmake generate broken Makefile for ui files generation:

$(DESTDIR_TARGET): ..\build\ui_commit.h $(OBJECTS)

But corresponding rule in the same Makefile is is

../build/ui_commit.h: commit.ui
c:\Qt\4.3.3\bin\uic.exe commit.ui -o ..\build\ui_commit.h

So that is not found by make because of wrong slashes, should be instead:

$(DESTDIR_TARGET): ../build/ui_commit.h $(OBJECTS)

Simplest workaround is to remove the added target and write directly

$(DESTDIR_TARGET): $(OBJECTS)

uic will be invoked correctly when needed (and not at the beginning of compilation)




So now I would like to compile Qt -shared -release but with -O0 flag instead of -O2, is it possible? and how?

Thanks in advance
Marco