MSBuild VS2010 и / Zc: автоматическая опция - PullRequest
1 голос
/ 26 декабря 2010

Я обновляю нашего разработчика. среда от VS 2008 до VS 2010. Мы компилируем более 1000 проектов C ++. Все из командной строки. Одной из проблем является интенсивное использование слова "auto" в нашей кодовой базе. VS 2010 по умолчанию не позволяет этого даже в именах функций, таких как auto_close и т. Д. Использование / Zc: автоопция решает эту проблему.

Мой вопрос: Как правильно MSBuild передать параметр / Zc: auto в cl.exe? Я попытался: "/ p: ClCompile_AdditionalOptions = Zc: auto-", но компиляция все равно не удалась. Если я добавлю / Zc: авто-вариант вручную в свойствах проекта - в свойствах конфигурации / C / C ++ / CommandLine / AdditionalOptions тогда проект хорошо компилируется.

Проблема в том, что я не могу вручную редактировать 1000 проектов.

Я пытаюсь использовать следующую командную строку: msbuild "/ t: Build" "/ p: Configuration = Release" "/ p: UseEnv = true" "/ p: AdditionalOptions = Zc: auto -""myproject.vcxproj"

1 Ответ

2 голосов
/ 26 декабря 2010

Предоставление / Zc: автоопция через MSBuild будет означать, что IDE не может быть использована для компиляции любого из рассматриваемых проектов, но, возможно, это вас не беспокоит.Если не все существующие проекты используют листы свойств, вы можете использовать файл по умолчанию, добавленный ко всем файлам vsxproj VS2010:

% LOCALAPPDATA% \ Microsoft \ MSBuild \ v4.0 \ Microsoft.Cpp.Win32.user.props

Этот лист свойств должен быть включен во все ваши проекты vcxproj.Чтобы добавить параметр в IDE, откройте один из ваших проектов, а затем:

Вид -> Прочие окна -> Диспетчер свойств -> Отладка |Win32 -> Microsoft.Cpp.Win32.User -> Свойства -> Общие свойства -> C / C ++ -> Командная строка -> Дополнительные параметры: / Zc: auto-

, а затем сохраните и выйдите из IDE.Этот раздел будет добавлен в этот файл:

<ItemDefinitionGroup>
  <ClCompile>
    <AdditionalOptions>/Zc:auto- %(AdditionalOptions)</AdditionalOptions>
  </ClCompile>
</ItemDefinitionGroup>

и будет применяться ко всем вашим проектам на C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...