Удаление флага -Zi с помощью qmake для Visual Studio 2012

У меня есть большое решение Visual Studio 2012, в котором около 15 проектов. Я бы очень хотел отключить генерацию символов отладки для некоторых из этих проектов; остальные должны позволять отладку. Все это связано с конфигурацией отладки.

У меня ужасное время, чтобы это произошло. Единственное упоминание Зи в моих профайлах выглядит так:

# Get rid of debug information
QMAKE_CFLAGS_DEBUG -= -Zi
QMAKE_CXXFLAGS_DEBUG -= -Zi
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -Zi

Но когда я загружаю файл решения, Property Pages -> C/C++ -> All Options -> Debug Information Format, параметр Program Database (/Zi) все еще отображается. Я также удалил все упоминания о Zi в mkspecs и qmake.conf (даже несмотря на то, что приведенные выше строки -= должны были удалить его).

Итак, я открыл исходный код qmake (каждый файл в qmake/generators/win32) и вижу, что нет способа отключить символы отладки; только отсутствие -Zi должно препятствовать его появлению.

Если я установлю проект на <inherit from parent or project defaults> вручную, снова появится опция Zi. Что наводит меня на мысль, что это наследуется... но откуда?!

Я схожу с ума. Пожалуйста помоги.


ИЗМЕНИТЬ 1:

По-видимому, унаследованные свойства исходят от листы свойств Microsoft.Cpp.*. Следуйте инструкциям по этой ссылке, чтобы найти листы свойств, унаследованные вашим проектом, и вы можете изменить их, чтобы избавиться от флага -Zi.

Конечно, было бы неплохо иметь флаг, который принудительно устанавливает None для Debug Information Format. Кто-нибудь знает, что это может быть?


РЕДАКТИРОВАТЬ 2:

Третья идея: попробуйте изменить расположение унаследованных листов свойств по умолчанию так, чтобы я мог их контролировать.

Переменная среды Windows $(UserRootDir) указывает расположение унаследованных листов свойств. MSBUILD якобы позволяет изменить значение этой переменной с помощью /property аргумент командной строки. К сожалению, я не могу понять, как заставить qmake принять этот аргумент. Есть ли способ установить входные аргументы для построителя qmake MAKEFILE_GENERATOR?

Этот квест начинает напоминать погоню за дикими гусями. Если бы у CMD были возможности sed, я бы просто написал скрипт для изменения <DebugInformationFormat> внутри файла vcxproj и готово.


person jmbeck    schedule 05.08.2013    source источник


Ответы (1)


Я отправил QTBUG-32885 для этого 2 месяца назад, но это не было исправлено. все же.

На данный момент вы можете исправить свой qmake, как описано в тикете.

person Trass3r    schedule 24.09.2013