LNK4075: ignorando ‘/EDITANDCONTINUE’ debido a la especificación ‘/OPT:ICF’

4 minutos de lectura

avatar de usuario
Marca

Recientemente convertí una solución de Visual Studio multiproyecto para usar .dlls en lugar de .libs para cada uno de los proyectos. Sin embargo, ahora recibo una advertencia del vinculador 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 solucionarlo?

Advertencia 2 advertencia LNK4075: ignorar ‘/EDITANDCONTINUE’ debido a la especificación ‘/OPT:ICF’ LudoCamera.obj

  • ¿Por qué es un error del enlazador? Te creo, simplemente no tengo experiencia con C ++ y Visual Studio. Cambiar de ZI (Editar y continuar la base de datos del programa) a Zi (Base de datos del programa) hizo que estos errores desaparecieran, pero podría estar ocultando la raíz del problema. ¿Podría elaborar?

    – Marca

    15 de octubre de 2009 a las 19:17

  • @Mark hay efectivamente tres etapas de compilación, (1) análisis: comprender lo que dice cada archivo cpp, (2) generación de código: generar códigos de operación para cada archivo de función y (3) vinculación: vincular los códigos de operación para cada función juntos. Esta advertencia comienza con LNK, lo que indica que se trata de un error del enlazador.

    – Pato mugido

    11 de febrero de 2014 a las 0:46

  • Es un buen toque que todavía diga “ignorar /EDITAR Y CONTINUAR” cuando no hay la opción “/EDITAR Y CONTINUAR”.

    –Glenn Maynard

    16 de febrero de 2017 a las 0:46

  • @GlennMaynard es un indicador interno de Microsoft Visual Studio que se habilita cuando se usan otros indicadores.

    – Keith M.

    18 de julio de 2018 a las 21:54

Puede tener soporte u optimizaciones “Editar y continuar”. Por lo general, coloca “Editar y continuar” en las compilaciones de depuración y las optimizaciones en las compilaciones de lanzamiento.

Editar y continuar le permite cambiar el código mientras está depurando y simplemente mantener el programa en ejecución. No se admite si el código también debe optimizarse.

  • ¿Hay alguna bandera específica que pueda pasar? he pasado \Zi pero sigue recibiendo esta advertencia.

    – Cocodrilo

    26/11/2016 a las 21:59

  • Es /, no `\`. Además, asegúrese de elegirlo en la compilación (DEBUG o RELEASE) que está tratando de compilar

    – Lou Franco

    27 de noviembre de 2016 a las 16:25


avatar de usuario
Ricardo

También tuve este problema. Abrí las Propiedades del proyecto 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 del programa (/Zi), y ya no recibí la advertencia.

  • Es posible que deba hacer esto para el proyecto al que se vincula, no solo para el proyecto que tiene la advertencia.

    – Nathan Kovner

    3 de diciembre de 2018 a las 21:49

También recibí esta advertencia al convertir un proyecto VS2008 de .lib a .dll y la solución fue cambiar la configuración del Vinculador/Optimización en la configuración de Debug Win32 de Predeterminado a:

Referencias = Conservar datos sin referencia (/OPT:NOREF)

Habilitar plegado COMDAT = No eliminar COMDAT redundantes (/OPT:NOICF)

debe configurar AMBOS proyectos ‘Formato de información de depuración’ como ‘Base de datos del programa (/ Zi)’. P.ej. Si la advertencia es:

advertencia LNK4075: ignorar ‘/EDITANDCONTINUE’ debido a la especificación ‘/OPT:ICF’ D:\mypath\project1\project1.obj project2

Luego en AMBOS project1 y las propiedades de los proyectos. Establecerlos como:

propiedades del proyecto->Propiedades de configuración->C/C++->General->Formato de información de depuración, configúrelo como ‘Base de datos del programa (/Zi)’;

Sé lo que es, los dll no son versiones de lanzamiento. Creo que el enlazador todavía piensa que son compilaciones de depuración, que aún tienen la funcionalidad de edición de depuración y continuación utilizada cuando la depuración aún está activada.

Beto.

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

    – TechNyquist

    8 jun 2016 a las 15:34

avatar de usuario
ulekh

Tuvimos que establecer “Generar información de depuración” en “Sí (/DEBUG)” en el panel Vinculador->Depuración de las propiedades del proyecto. No estoy seguro de cómo eso no se configuró para una compilación de depuración en primer lugar, o por qué eso no sería el valor predeterminado, pero ahí lo tienes. (VS2010, en caso de que sea relevante).

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

    – TechNyquist

    8 jun 2016 a las 15:34

avatar de usuario
andres morris

También puede obtener este error si agregó accidentalmente un directorio de depuración en su versión de lanzamiento. Compruebe Linker->General->Directorios de bibliotecas adicionales. Trabajó para mi.

¿Ha sido útil esta solución?