Compartir a través de


Error de las herramientas del vinculador LNK1211

información de tipo precompilado no encontrada; 'filename' no vinculado o invalidado

El archivo objeto filename, compilado mediante /Yc, no se ha especificado en el comando LINK o se ha invalidado.

Si va a crear una biblioteca de depuración que use encabezados precompilados y especifica /Yc y /Z7, Visual C++ genera un archivo objeto precompilado que contiene información de depuración. El error solo se produce cuando el archivo objeto precompilado se almacena en una biblioteca, se usa la biblioteca para compilar una imagen ejecutable y los archivos objeto a los que se hace referencia no tienen referencias transitivas a ninguna de las funciones que define el archivo objeto precompilado.

Hay dos métodos para salvar esta situación:

  • Especifique la opción del compilador /Yd para agregar la información de depuración del encabezado precompilado a cada módulo de objetos. Este método es menos deseable porque normalmente genera módulos de objetos grandes que pueden aumentar el tiempo necesario para vincular la aplicación.

  • Especifique /Yl y pase el nombre de cualquier cadena arbitraria cuando cree un archivo de encabezado precompilado que no contenga ninguna definición de función. Esto indica al compilador que cree un símbolo en el archivo objeto precompilado y emita una referencia a ese símbolo en cada archivo objeto que use el archivo de encabezado precompilado asociado al archivo objeto precompilado.

Al compilar un módulo con /Yc e /Yl, el compilador crea un símbolo similar a __@@_PchSym_@00@...@symbol_name, donde los puntos suspensivos (...) representan una cadena de caracteres generada por el compilador, y la almacena en el módulo de objetos. Cualquier archivo de origen que se compile con este encabezado precompilado hace referencia al símbolo especificado, lo que hace que el enlazador incluya el módulo de objetos y su información de depuración de la biblioteca.