CXXFLAGS модификация файла Qt pro?

Возможный дубликат:
Настройка переключателей компилятора GCC в Qt, QtCreator и QMake

Я хотел бы использовать -O1 вместо -O2 в моем make-файле (CFLAGS и CXXFLAGS) для моей сборки Linux. Мне не хватает понимания того, как эти make-файлы создаются на основе файла .pro. Это связано с тем, что версия Qt в сочетании с версией G ++, которую я использую, имеет нестабильность при наличии -O2.

В настоящее время я запускаю сценарий замены после запуска qmake, который делает следующее:

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

Это решение проблемы гетто. Гораздо лучшим решением было бы каким-то образом изменить файл .pro, чтобы передать эти директивы. Я не уверен, как создаются CFLAGS и CXXFLAGS.

Я пробовал пройти

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

что не сработало.


person Brian Stinar    schedule 29.04.2011    source источник
comment
linux-g ++ - {QMAKE_CXXFLAGS + = -O1} не работает, linux-g ++ - {QMAKE_CXXFLAGS_RELEASE + = -O1} также не работает, я должен был упомянуть, что пробовал это в своем решении.   -  person Brian Stinar    schedule 30.04.2011
comment
Я думаю, что мой чек тоже слишком тесен, так как кажется, что QMAKE_CXXFLAGS ДОЛЖЕН работать.   -  person Brian Stinar    schedule 30.04.2011
comment
есть, я использую это. Попробуйте вместо этого linux* в качестве условия.   -  person rubenvb    schedule 30.04.2011


Ответы (1)


Вы были очень близки. Вы хотите:

QMAKE_CXXFLAGS += -O1

Если вы хотите применить флаги только к сборке выпуска, вы можете использовать это:

QMAKE_CXXFLAGS_RELEASE += -O1

Вы также, вероятно, захотите изменить свое состояние, чтобы стать немного более гибким. В общем, примерно так:

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

Подробнее в документации здесь: http://qt-project.org/doc/qt-5.0/qtdoc/qmake-variable-reference.html#qmake-cxxflags

person Evan Teran    schedule 29.04.2011
comment
Спасибо, мой флажок ТАКЖЕ слишком плотный, как вы и предлагали. - person Brian Stinar; 30.04.2011
comment
@ Брайан: да, ты убил рывок в конце. - person Evan Teran; 30.04.2011
comment
Если устанавливаемый вами флаг также относится к связыванию, вам также необходимо установить, например,. QMAKE_LFLAGS + = -m32 - person iforce2d; 30.09.2012
comment
У меня это не работает. Ваше решение изменило -O2 на -O1 -O2, что вряд ли поможет. - person Joseph Quinsey; 31.10.2012