Как изменить флаги выпуска qmake для gcc? (Изменить -O2 на -O)

С qmake вы можете легко изменить, чтобы вы построили отладочную версию, или выпуск версии. Просто измените CONFIG var и смените флаги компиляции.

CONFIG += debug
CONFIG += release

Когда вы используете debug, вы получаете -g и не оптимизируете, и когда вы используете выпуск, вы получаете -O2 и никакой отладочной информации (no -g).

Но где указано?

Скажем, что я хотел бы, чтобы мое приложение было создано с оптимизацией для размера, -О? Как мне изменить то, что стоит за "release"?

Спасибо

Ответы

Ответ 1

Вы можете изменить глобальные флаги компилятора, изменив QMAKE_CXXFLAGS. Флаги компилятора для сборки отладки и выпуска могут быть установлены в QMAKE_CXXFLAGS_DEBUG и QMAKE_CXXFLAGS_RELEASE соответственно.

Для вашего конкретного примера вы должны сделать что-то вроде этого:

QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE += -Os

Ответ 2

В моем случае я попробовал все, что нашел везде, и никто не работал. Единственный путь для меня - это жесткие коды внутри каталога установки qt5! Поэтому для записи я добавил две строки:

QMAKE_CFLAGS_RELEASE = "-march=native -O3 -msse -msse2 -msse3 -mssse3 -fomit-frame-pointer -pipe"
QMAKE_CXXFLAGS_RELEASE = "-march=native -O3 -msse -msse2 -msse3 -mssse3 -fomit-frame-pointer -pipe"

В файл:

/opt/qt5/mkspecs/linux-g++/qmake.conf

Обратите внимание, что у меня был qt5, скомпилированный и установленный в моей системе в /opt/qt 5. Таким образом, вы можете искать папку с именем mkspecs в своей системе, а затем вложенную папку с именем linux-g++, а затем файл с именем qmake.conf, чтобы добавить к нему эти две магические строки. Это зависит от вас и окружающей среды, в которой вы находитесь.