2009-10-15 6 views
27

Hace poco convertí una solución multiproyecto para usar .dlls en lugar de .libs para cada uno de los proyectos. Sin embargo, ahora recibo una advertencia de enlazador para cada proyecto como se indica en el ejemplo. MSDN no sirvió para ser tan útil con esto. ¿Por qué es esto y cómo puedo resolverlo?LNK4075: ignorando '/ EDITANDCONTINUE' debido a la especificación '/ OPT: ICF'

Cuidado de 2 LNK4075 de advertencia: ignorando '/ EDITANDCONTINUE' debido a '/ OPT: ICF' especificación LudoCamera.obj

+0

¿Por qué es un error de vinculador? Te creo, no tengo experiencia con C++ y Visual Studio. El cambio de ZI (Edición de la base de datos del programa y Continuar) a Zi (Base de datos del programa) hizo que estos errores desaparecieran, pero podría estar ocultando el problema de raíz. ¿Podrías elaborar? – Mark

+2

@Mark hay tres etapas de compilación, (1) análisis: comprensión de cada archivo cpp, (2) generación de código, generación de códigos de operación para cada archivo de función y (3) vinculación: vinculación de los códigos de operación para cada función. Esta advertencia comienza con LNK, lo que indica que es un error del enlazador. –

+1

Es un buen toque que esto todavía diga "ignorando/EDITANDCONTINUE" cuando no hay opción "/ EDITANDONTINUE". –

Respuesta

30

Usted puede tener "Editar y continuar" soporte o optimizaciones. Por lo general, pones "Editar y continuar" en las compilaciones de depuración y las optimizaciones en las compilaciones de versiones.

Editar y continuar le permite cambiar el código mientras está depurando y simplemente mantener el programa en ejecución. No es compatible si el código también debe ser optimizado.

+0

¿Hay alguna bandera específica que pueda pasar? He pasado '\ Zi' pero sigo recibiendo esta advertencia. – CroCo

+0

Es '/', no '\\'. Además, asegúrese de seleccionarlo en la compilación (DEPURACIÓN o LIBERACIÓN) que está tratando de compilar. –

0

Sé lo que es, no serán versiones de lanzamiento. Creo que el vinculador todavía piensa que son compilaciones de depuración, que aún tienen la función de edición y depuración de errores utilizada cuando todavía está activada la depuración.

Bob.

+0

Tenía compilada una lib para la versión importada en el proyecto de depuración y apareció la advertencia. Algo como esto de hecho. – TechNyquist

6

También me dio esta advertencia al convertir un proyecto de VS2008 .lib a .dll y la solución fue cambiar la configuración del vinculador/optimización de la configuración de depuración de Win32 predeterminado a:

Referencias = Mantener sin referencia de datos (/ OPT: NOREF)

Habilitar COMDAT plegable = No Sacar COMDAT redundantes (/ OPT: NOICF)

13

tuve este problema también. Abrí Project Properties y luego hice clic en General en la pestaña C/C++. Hay una opción que dice 'Formato de información de depuración', que cambié a Base de datos de programa (/ Zi) y ya no recibí la advertencia.

Espero que esto ayude. Greetz

Richard

Cuestiones relacionadas