Brian Stinar Brian Stinar - 3 months ago 19
Linux Question

CXXFLAGS modification From My .pro File


Possible Duplicate:

Configuring the GCC compiler switches in Qt, QtCreator, and QMake




I would like to use
-O1
instead of
-O
2 in my makefile (
CFLAGS
and
CXXFLAGS
) for my Linux build, but my understanding of how these makesfiles are generated based on the .pro file is somewhat lacking. This is because the version of Qt combined with the version of G++ I am using has instabilities when -O2 is present.

Presently, I am running a replacement script, after I run qmake, which does this:

sed -i 's/\-O2/\-O1/g' AllProjects/Makefile.Release


This is a ghetto solution. A much better solution would be to modify the .pro file somehow to pass along these directives. I am not sure how CFLAGS and CXXFLAGS are being generated though, and I figured I would ask wonderful StackOverflow.

I have tried passing a

linux-g++-{
CFLAGS += -O1
CXXFLAGS += -O1
CONFIG += -O1
}


which did not work.

Answer

You were very close. What you want is:

QMAKE_CXXFLAGS += -O1

If you would like to apply flags to just the release build, then you can use this:

QMAKE_CXXFLAGS_RELEASE += -O1

You also probably want to change your condition to be a little more flexible. In summary, something like this:

*-g++* {
    QMAKE_CXXFLAGS += -O1
}

More in the documentation here: http://qt-project.org/doc/qt-5.0/qtdoc/qmake-variable-reference.html#qmake-cxxflags