none
Problema dependencia de librerias RRS feed

  • Pregunta

  • Hola a tod@s,

    Tengo una solución de Visual Studio 2008, donde el proyecto principal es un proyecto main.DLL. Este proyecto DLL enlaza y depende de otro proyecto "acq.dll", y este "acq.dll" utiliza funciones de una DLL externa dinamicamente.

    El problema que tengo es que todo me compila bien, pero el linkador me arroja el siguiente error:

    Error    1749    fatal error LNK1104: cannot open file 'GCBase_MDd_VC80_v2_0.lib'    MAINDLL    MAINDLL

    O sea, parece ser que el proyecto principal también tiene dependencias a esa librería externa, pero en realidad en el proyecto principal yo no estoy usando nada de esa librería. Sólo la utilizo desde el proyecto secundario "acq.dll"

    Qué es lo que me está ocurriendo? qué hago mal?

    viernes, 27 de mayo de 2011 16:40

Respuestas

  • No, el problema debe estar en que en las opciones del proyecto, tienes esa dependencia pero te falta el fichero. Prueba a borrar ese nombre de fichero LIB en las opciones del linker.
    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    • Marcado como respuesta mambonegro martes, 7 de junio de 2011 10:51
    martes, 31 de mayo de 2011 15:48
    Moderador

Todas las respuestas

  • No, el problema debe estar en que en las opciones del proyecto, tienes esa dependencia pero te falta el fichero. Prueba a borrar ese nombre de fichero LIB en las opciones del linker.
    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    • Marcado como respuesta mambonegro martes, 7 de junio de 2011 10:51
    martes, 31 de mayo de 2011 15:48
    Moderador
  • No entiendo...de que proyecto se supone que debería borrarlo? del acq.dll o del main.dll? si lo quito de alguno de los dos deja de linkar bien.
    martes, 31 de mayo de 2011 16:03
  • Vale, vale, me equivoqué yo.

    Lo que pasa es que el enlazador no encuentra ese fichero lib. Algo tienes que tener mal en las rutas de búsqueda del mismo.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    lunes, 6 de junio de 2011 9:47
    Moderador
  • No, ese no es el problema. Vuelvo a repetir que si añado las bibliotecas en todos los proyectos la solución acaba linkando bien. El problema es que me pide que incluya la biblioteca en proyectos donde no se usa, pero que sí la usa un proyecto dependiente.
    lunes, 6 de junio de 2011 11:03
  • Vamos a ver.

    Ese lib es lo que se llama una biblioteca de importación, que le dice al compilador dónde están, dentro de la DLL, casa función publicada, por tanto es necesaria en cada uno de los proyectos que usen dicha DLL.

    Ahora bien, si cargas la DLL con LoadLibrary y accedes por punteros (o por ordinales, que todavía es más antiguo), entonces no te hace falta.

    Léete esto de mi blog:

    http://geeks.ms/blogs/rfog/archive/2009/06/29/todo-lo-que-quisiste-saber-sobre-las-dll-y-no-te-atreviste-a-preguntar-i.aspx

    http://geeks.ms/blogs/rfog/archive/2010/01/29/todo-lo-que-quisiste-saber-sobre-las-dll-y-no-te-atreviste-a-preguntar-ii.aspx

     


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    lunes, 6 de junio de 2011 11:19
    Moderador
  • Parece que no me explico bien...

    El proyecto con el que tengo problemas de linkaje no hace referencia en ningún momento a esa librería. Pero depende de otro proyecto que sí utiliza esa librería. Lo normal sería que sólo agregase la librería en el proyecto que hace uso de ésta, pero sin embargo parece que por dependencias o algo así también me la pide el segundo proyecto.

    lunes, 6 de junio de 2011 14:29
  • Alguna dependencia tiene que tener, porque si no el enlazador no necesitaría dicha biblioteca de importación.

    Vamos a ver. ¿El proyecto con el que tienes el problema de enlazado, carga o no carga esa DLL o hace referencia a ella de alguna forma? Si es no, resulta muy extraño... casi te diría que el Visual Studio se ha hecho la picha un lío. Limpia la solución y borra los ficheros temporales a ver.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    martes, 7 de junio de 2011 10:36
    Moderador
  • Muchas gracias, ya está solucionado.
    martes, 7 de junio de 2011 10:50