Qmake: как убрать флаг компилятора для определенного проекта, не меняя qmake.conf? - PullRequest
7 голосов
/ 23 ноября 2011

Я использую qmake и Visual Studio. В сборке релиза qmake добавляет флаги / GL и / O2 ко всем проектам, и мне нужно удалить эти два флага для определенных библиотек в рамках всего моего проекта Qt. Есть ли способ?

Ответы [ 5 ]

9 голосов
/ 18 марта 2013

У меня была похожая проблема, и я решил ее, добавив следующую директиву в файл .pro:

QMAKE_CXXFLAGS_RELEASE - = -g

Соблюдайте суффикс _RELEASE, иначе не работают.

5 голосов
/ 28 января 2015

Я отредактировал мой .pro-файл с помощью этого, и он работал!

QMAKE_CXXFLAGS_RELEASE  -= -Zc:strictStrings
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -Zc:strictStrings

Не работает:

QMAKE_CFLAGS_RELEASE -= -Zc:strictStrings
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -= -Zc:strictStrings

Вы можете попробовать:

QMAKE_CXXFLAGS_RELEASE  -= -GL -O2
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -GL -O2

Посмотрите:

ваш Qt dir \ compiler \ mkspecs \ win32-msvc2013 \ qmake.conf

3 голосов
/ 23 ноября 2011

Единственный способ, которым это могло бы работать, -

QMAKE_CFLAGS -= /GL /O2

но я сомневаюсь, что это работает для QMAKE_CFLAGS.

Кроме того, вы можете переопределить QMAKE_CFLAGS, забыв предыдущее значение:

QMAKE_CFLAGS = $$CFLAGS_WITHOUT_GL_O2
1 голос
/ 23 апреля 2019

Если -= не работает

, попробуйте в вашем .pro файле

QMAKE_CFLAGS = $$replace(QMAKE_CFLAGS, "-GL ", "")
QMAKE_CFLAGS = $$replace(QMAKE_CFLAGS, "-O2 ", "")
1 голос
/ 23 ноября 2011

Вы можете редактировать qmakespec, который используется вашей конфигурацией.

Самый простой способ найти его - открыть

%QTDIR%\mkspecs\%QMAKESPEC%

, предполагая, что переменные окружения установлены (они должны быть)

На всякий случай, если он не работает, это будет что-то вроде C:\Qt\4.x.x\mkspecs\win32-msvc2010

В файле qmake.conf вы можете настроить следующие две строки: они находятся в разных местах файла)

QMAKE_CFLAGS_RELEASE    = -O2 -MT
QMAKE_CFLAGS_LTCG       = -GL

до

QMAKE_CFLAGS_RELEASE    = -MT
QMAKE_CFLAGS_LTCG       =

Однако обратите внимание, что вам придется делать это для каждой версии Qt, которую вы используете (и для каждого будущего обновления, которое вы будете делать).

[Изменить]Если вы хотите иметь опции -O2 -GL для определенных проектов, вам нужно будет добавить

QMAKE_CFLAGS_RELEASE    += -O2
QMAKE_CFLAGS_LTCG       += -GL

в файл .pro проектов, которым нужны эти опции.

В зависимости от суммыпроектов, которые его используют, и тех, которые его не используют, этот подход или переопределение QMAKE_CFLAGS будет более удобным.

...