2010-06-09 24 views
6

Esto no es un duplicado de VC++ resources in a static library porque no ayudó a :)Recursos en la biblioteca estática pregunta

tengo una biblioteca estática con DOS.rc archivos en ella de proyecto. Cuando construyo mi proyecto utilizando la configuración Debug, recupero el siguiente error (MSVS2008):

fatal error LNK1241: resource file res_yyy.res already specified 

Tenga en cuenta, que esto sucede sólo en Debug y Release biblioteca construye sin ningún problema. La línea de comandos para Resources página de configuración del proyecto se ve el mismo para cada proyecto de construcción:

/fo"...(Path here)/Debug/project_name.res" 
/fo"...(Path here)/Release/project_name.res" 

y no puedo entender lo que es el problema. Alguna idea?

ACTUALIZACIÓN

No sé por qué sucede esto, pero cuando se enciende la opción "Usar enlace en tiempo de generación de código" en el problema desaparece.

¿Alguien podría explicar por qué sucede esto? Siento que el compilador de MS está haciendo algo realmente extraño aquí.

Gracias.

Respuesta

5

Resolvió este problema al establecer EXACTAMENTE UN archivo de salida .res en la configuración. No estoy seguro de por qué estaba bien en el modo Release.

+1

¿Dónde estableciste esto? –

+1

donde de hecho ??? –

+0

vaya a Propiedades/Recursos/Nombre del archivo de recursos y elimine la línea. – Juliano

4

Me encontré con esta publicación porque tenía el mismo error de vinculador.

El enfoque especificado en la respuesta produjo una advertencia de enlazador en mi sistema (xyz.res: advertencia LNK4042: objeto especificado más de una vez; se ignoran los extras).

Lo que funcionó para mí fue la de eliminar las entradas de "de Recursos Nombre de archivo" y "cultura" en la configuración/Recursos Propiedades.

+0

Gracias, podría construir siguiendo tu camino. Me pregunto para qué se utilizan los archivos de recursos. – yoshi

0

Para mí ha solucionado el problema por ir a mi Explorador de soluciones y excluyendo todos los archivos y luego volver a'include en project'-ed los archivos .h .cpp que estaba usando

1

terminé invocando este error durante una exploración para obtener un grupo de proyectos dependientes para todos se compila como dlls de un conjunto grande que inicialmente se configuraron para que se construyeran como bibliotecas estáticas. Inadvertidamente cambié una de las configuraciones del proyecto en las referencias del proyecto para obtener la construcción de dlls. Volver a verificar que mis cambios funcionaron para la configuración de la biblioteca estática completa reveló el error de enlace. Entonces, para un proyecto dependiente específico que tenía un archivo de recursos para incluir información de Versión, tenía el indicador Project Reference Properties: Link Library Dependencies establecido en True. Cambiarlo a False solucionó el error.

Por cierto, solo necesitaba el archivo de recursos para la versión Dll, ya que realmente necesitaba Dependencias de biblioteca de enlaces establecidas en True para corregir los errores del vinculador en la compilación Dll. Entonces, lo que terminé haciendo es excluir el archivo de recursos de la compilación de la biblioteca estática configurando Yes en Excluded From Build.

Cuestiones relacionadas