Установка _HAS_ITERATOR_DEBUGGING = 0 в настройках проекта (иногда) не имеет никакого эффекта - PullRequest
4 голосов
/ 26 ноября 2010

У меня есть решение Visual Studio 2008 с несколькими проектами, каждый из которых определяет _HAS_ITERATOR_DEBUGGING = 0 в параметре «Определения препроцессора» в файлах проекта. Но, похоже, это работает только в некоторых проектах, в то время как другие все еще компилируются с включенной отладкой итератора.

Я проверил каждый файл в решении, и нигде не определено _HAS_ITERATOR_DEBUGGING, кроме настроек проекта.

Добавление #define _HAS_ITERATOR_DEBUGGING 0 в начало каждого stdafx.h в решении позволяет обойти эту проблему, но я хотел бы знать, почему установка этого параметра в разделе «Определения препроцессора проекта» не работает в некоторых случаях. Есть идеи?

1 Ответ

4 голосов
/ 26 ноября 2010

Время от времени меня кусает то, что настройки проекта могут легко отличаться в разных конфигурациях (например, Release или Debug).Убедитесь, что настройки есть или конфигурация вы создаете.И, конечно же, определение правильно написано ...

Для проектов, в которых возникли проблемы, взгляните на журнал сборки (BuildLog.htm - ссылка на него отображается в окне «Вывод сборки»).) и убедитесь, что параметр

-D "_HAS_ITERATOR_DEBUGGING=0" 

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

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