2011-04-20 18 views
16

Estamos utilizando una biblioteca de otro proveedor, que al parecer se compiló con los indicadores incorrectos, es decir _ITERATOR_DEBUG_LEVEL = 0 en 32 bits-Debug-mode. Si bien ya presenté un informe de error con ellos, necesito una solución intermedia. No usamos stl nosotros mismos, entonces soy libre de cambiar esta bandera para el subproyecto que usa dicha biblioteca. Pero no puedo entender cómo hacerlo. Lo que intenté un no funcionó:Cómo configurar _ _ITERATOR_DEBUG_LEVEL en VS2010?

/D_ITERATOR_DEBUG_LEVEL=0 
> LINK : warning LNK4044: unrecognized option '/D_ITERATOR_DEBUG_LEVEL=0'; ignored 

#define _ITERATOR_DEBUG_LEVEL 0 
> Nothing happens 

¿Cuál es la sintaxis correcta o la opción para que el proyecto para compilar sin iteradores controladas?

+2

/D es una opción para el compilador y se lo dio al enlazador –

Respuesta

27

Encontré la solución.

Páginas de proyecto/Propiedades de configuración/C, C++/Preprocesador/Preprocesador Definiciones.

Agregue "_ITERATOR_DEBUG_LEVEL = 0" allí funcionó.

+0

Acabo de llevar a cabo la sugerencia anterior. Tengo 2 proyectos, uno es una biblioteca estática vinculada a la otra. Cada uno comenzó como un proyecto 2008 Express. La biblioteca se convirtió automáticamente en 2010 Express, la otra se insertó en un nuevo proyecto de 2010 como archivos existentes. Tuve que hacer varios cambios en la configuración y el código para que este último proyecto se construya en depuración usando 2010 Express. He agregado _ITERATOR_DEBUG_LEVEL = 0 a las macros del preprocesador bajo Release para ambos exe y biblioteca estática. No hizo ninguna diferencia. –

+0

Solo para aclarar el comentario del usuario22636958, la forma en que se lee el mensaje de error, me hace pensar que tengo que cambiar el proyecto incorrecto al agregar '_ITERATOR_DEBUG_LEVEL'. Cambié el otro y funcionó para mí. :-) – kmort

3

información Así como adicional: Páginas del Proyecto/Propiedades de configuración/C, C++/preprocesador/definiciones del preprocesador y establecer el preprocesador macro _ITERATOR_DEBUG_LEVEL a uno de los siguientes, dependiendo del objetivo:

_ITERATOR_DEBUG_LEVEL = 0 // disabled (for release builds) 
_ITERATOR_DEBUG_LEVEL = 1 // enabled (if _SECURE_SCL is defined) 
_ITERATOR_DEBUG_LEVEL = 2 // enabled (for debug builds) 
Cuestiones relacionadas