Новая конфигурация отладки Visual Studio

Я пытаюсь настроить Visual Studio 2010, чтобы добавить конфигурацию отладки.

Configuration Manager-> либо запустив активную конфигурацию решения:, либо Project, добавив New, создав новую конфигурацию, скопировав из Debug... (если решение, либо создало новую конфигурацию, либо просто использовало Debug и добавило новую конфигурацию проекта) ...

http://msdn.microsoft.com/en-us/library/kwybya3w.aspx

Сборка -> ошибки, которые предполагают сочетание отладки и выпуска:

defaultlib 'LIBCMT' конфликтует с использованием других библиотек; используйте /NODEFAULTLIB:library -> легко исправить

обнаружено несоответствие для «_ITERATOR_DEBUG_LEVEL»: значение «2» не соответствует значению «0» -> не знаю, как исправить.

Я пытался вручную изменить файл проекта... Но я не знаю, как это исправить. результирующая конфигурация ?

Более того, я не могу просто исправить этот конкретный случай — будет очень много ситуаций, когда эта ситуация повторится снова, так что же я делаю неправильно?

Примечание. Мне нужна конфигурация DEBUG, чтобы иметь возможность выполнять модульное тестирование (С++) и иметь возможность отделять исполняемые файлы сборки от модульных тестов.


person Thalia    schedule 12.10.2012    source источник
comment
Начните с меню Сборка-›Диспетчер конфигурации, оттуда используйте раскрывающийся список под Активной конфигурацией решения, выберите ‹Создать...›. В диалоговом окне используйте раскрывающийся список в разделе Копировать настройки из: и выберите Отладка. Добавьте новое имя в текстовое поле, нажмите OK.   -  person pb2q    schedule 12.10.2012
comment
Я это сделал. Результат: вышеуказанные ошибки сборки. Я только что воссоздал решение с нуля, прямо сейчас, с точно такими же результатами.   -  person Thalia    schedule 12.10.2012
comment
_ITERATOR_DEBUG_LEVEL=0 похоже на значение Release, вы пытались изменить его на 2?   -  person szx    schedule 13.10.2012
comment
Вот именно в этом вопрос, я скопировал структуру DEBUG, но в итоге получил некоторую комбинацию DEBUG и RELEASE !!!!! Как я могу это изменить? Единственное, что я могу сделать, это удалить значения по умолчанию Inherit from parent или project, а затем добавить все эти значения вручную. Однако это не может быть шаблонным решением.   -  person Thalia    schedule 13.10.2012
comment
Если вы добавите _ITERATOR_DEBUG_LEVEL=2 в верхнее окно, это сработает? Я думаю, что должна быть возможность «переопределить» значения, предоставленные родительским шаблоном, как это, но я некоторое время не возился с VS. Другим решением было бы разделить ваши шаблоны для более точной детализации, например, иметь общий шаблон, шаблон отладки и выпуска, где ваш текущий шаблон был бы общим, но затем вы перемещаете _ITERATOR_DEBUG_LEVEL и другие подобные определения в шаблоны отладки и выпуска. шаблоны с правильными настройками. Debug, Release будет наследоваться от Common, т. е. дерева шаблонов.   -  person WeirdlyCheezy    schedule 13.10.2012
comment
См. выше: мне пришлось снять флажок наследовать от значений по умолчанию проекта, чтобы иметь возможность изменить его, иначе у меня все еще была ошибка, даже при добавлении дополнительного ITRATOR_DEBUG_LEVEL. И я не пытаюсь исправить пример проекта, я несколько раз переделывал его с тем же эффектом. Я пытаюсь добавить копию конфигурации DEBUG и заставить ее работать, не тратя еще полчаса на изменение и исправление других свойств - до сотни других проектов. Если этот демонстрационный проект не работает, то я могу отказаться от всей идеи.   -  person Thalia    schedule 14.10.2012


Ответы (1)


Я могу установить параметры конфигурации на странице свойств, где я могу добавить такие вещи, как

<ItemDefinitionGroup Condition="'$(Configuration)' == 'DebugCopy'">
    <ClCompile>
      <PreprocessorDefinitions>_ITERATOR_DEBUG_LEVEL=2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>

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

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

person Thalia    schedule 02.11.2012
comment
Возникли проблемы с установкой его в существующем проекте и обнаружено, что C/C++/Code Generation/Runtime Library/Multi-threaded Debug DLL (/MDd) работает, но /MD не работает в небольшом тестовом проекте. - person Tom; 17.03.2021