Question

I installed Qt for Mac, and am compiling my Qt project after adding in the .Pro file

CONFIG(release, debug|release):QMAKE_CXXFLAGS += -O3 -fomit-frame-pointer

to optimize for speed.

However, I always see that the command where g++ is ran, includes -Os, which optimizes for size. I would like to remove it.

I tried several approaches, like

CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE -= -Os
CONFIG(release, debug|release):QMAKE_CXXFLAGS -= -Os

and

CONFIG(release, debug|release):QMAKE_CXXFLAGS = -O3 -fomit-frame-pointer
CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE = -O3 -fomit-frame-pointer
(no +)

But nothing. -Os ALWAYS appear.

How do I change this?

I found the qmake.conf file under /usr/local/QT4.5/mkspecs. It includes a mac-g++.conf file, but I cannot change it, and chmod doesn't work: chmod: mac-g++.conf: Operation not permitted

Any ideas?

Was it helpful?

Solution

i was able to solve this by editing my project's .pro file:

QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE += -O3

i verified that it took effect by monitoring the compile output.

OTHER TIPS

You should run qmake command in your project directory after you edited the .pro file.

The chmod command is failing because that directory is owned by root (i.e., not your user).

You could handle that with:

sudo chmod ....

I guess my big question is whether you know that -O3 really optimizes for speed or not. As Pavel indicated, you can edit the Makefile and build manually and test. My guess is that -O3 won't make much of a difference and might be slightly worse.

As far as setting CXXFLAGS in Qt Creator, your best bet is to override the call to Make. In the "Projects" section, go to "Build Steps" and "Make" and add CXXFLAGS='-O3 -fomit-frame-pointer' to the "Make arguments" section.

Hope that helps!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top