Visual Studio 2010 no está autenticando las bibliotecas estáticas de los proyectos que son dependencias como se supone debe

  • Crear una nueva solución con un proyecto de línea de comandos de la consola C ++
  • Crear un nuevo proyecto, una biblioteca estática de C ++
  • Hacer que el proyecto de línea de comando dependa de la biblioteca
  • Asegúrese de que “Dependencias de la biblioteca de enlaces” esté activada en Configuración => Enlazador => General (es por defecto)
  • Visual Studio aún no vinculará la biblioteca.

¿Cómo puedo arreglar esto? Funcionó en Visual Studio 2008.

Esto todavía funciona, pero fue cambiado en VS 2010:

“Con VS2010, dejamos de apoyar las dependencias de proyectos que definen referencias implícitas y también introdujimos una nueva forma de definir dependencias de proyectos a nivel de proyecto. Como una referencia de proyecto y una dependencia de proyecto son conceptos cercanos, ambos aplicados a un proyecto, tenía sentido haga que se representen juntos, de manera consistente, en el archivo de proyecto. Como verá en los fragmentos a continuación, la única diferencia entre una definición de referencia de proyecto y una definición de dependencia de proyecto consiste en metadatos que definen la inclusión / exclusión del ensamblaje de salida en / desde la línea de comando del enlace principal del proyecto. Aunque no eliminamos el diálogo “Dependencias del proyecto”, recomendamos definir nuevas dependencias del proyecto a través del cuadro de diálogo “Marco y referencias”. Debe establecer la propiedad “Salida del conjunto de referencia” en la página de propiedades UI a falso para una dependencia de proyecto y verdadero para una referencia de proyecto “.

Simplemente haga clic derecho en el proyecto de la consola, seleccione “Propiedades-> Propiedades comunes-> Marco y referencias-> Agregar nueva referencia” y agregue el proyecto de biblioteca estática; también verifique que “Dependencias de biblioteca de enlaces” sea Verdadero en el lado derecho. Parece que funciona para versiones de depuración y liberación. Tu aprendes algo nuevo cada dia. 😉

Cambiaron la interfaz de usuario para agregar dependencias de proyectos de C ++ en VS2010, pero, por extraño que parezca, sin eliminar la interfaz de usuario anterior, o de alguna manera que indica que ya no funciona.

Para crear la dependencia en VS2010, debe usar “Agregar nueva referencia” (se puede encontrar en las propiedades del proyecto), y tal vez también en el menú contextual del proyecto (no tenga VS aquí para verificar)

El viejo diálogo de “Dependencias del proyecto” está básicamente roto ahora.

Para MSVC 14 (versión 2015) haga clic derecho en el proyecto, luego "Add->Reference..." y verifique todas las dependencias necesarias.

Sí, ha cambiado en algún lugar entre las versiones de 2010 y 2015. ¡Divertido!

Y si está buscando vincular un proyecto que tiene recursos en él, debe especificar el archivo .res directamente en la lista de dependencias de entrada del enlazador (cuadro de diálogo de propiedades del proyecto) ya que no se recoge en la configuración anterior.

ACTUALIZAR

Sigue el mismo comportamiento (nuevo) en MSVC 2017

Creo que la interfaz de usuario anterior (dependencias) afecta el orden de comstackción para Visual Studio, cuando se comstack desde el IDE, para obtener información. El nuevo sistema de configuración del proyecto incorpora las referencias en cada archivo de proyecto para que pueda construir desde fuera del IDE (mientras que en versiones anteriores, no podía, porque no obtendría enlaces automáticos para las dependencias, ya que las dependencias solo se realizaban en el nivel de solución )

También hay algunos problemas con proyectos más complejos en el nuevo sistema; específicamente, todos los proyectos binarios resultantes deben tener referencias explícitas a cada biblioteca dependiente para comstackr correctamente, mientras que anteriormente podrían heredarse de otras bibliotecas dependientes. La misma causa subyacente, sin embargo.