У меня есть большое решение 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 и готово.