Pregunta

Quiero usar libgadu (biblioteca de protocolo de mensajería instantánea) en Visual Studio 2008. He descargado libgadu http://toxygen.net/libgadu/files/ libgadu-1.8.2.tar.gz y bajo cygwin lo he compilado - ./configure, make, make install. Archivo libgadu.h que aparece en la carpeta de inclusión que copié en otra carpeta que está marcada en VS como directorio de archivos incluidos.

Quería compilar código de la documentación

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <libgadu.h>

using namespace std;

int main(void)
{
    char password[]= "haslo";
    struct gg_session *sesja;
    struct gg_login_params parametry;
    struct gg_event *zdarzenie;

    memset(&parametry, 0, sizeof(parametry));
    parametry.uin = 12345;
    parametry.password = password;
    parametry.async = 1;
    parametry.status = GG_STATUS_INVISIBLE;


    sesja = gg_login(&parametry);
    if (!sesja) {
        cout << "Can't connect" << endl;
       exit(1);
    }

    system("PAUSE");
}

Durante la compilación recibo dos errores:

Error   1   error LNK2019: unresolved external symbol _gg_login referenced in function _main    1.obj
Error   2   fatal error LNK1120: 1 unresolved externals 

¿Qué debo hacer con él?

¿Fue útil?

Solución

Necesita localizar el archivo compilado DLL y LIB, o simplemente el archivo LIB si se compiló en una biblioteca estática. Los archivos probablemente se llamarán libgadu.dll y libgadu.lib.

Una vez que los tenga, puede indicar a Visual Studio que se vincule con el archivo LIB seleccionando Propiedades del proyecto y localizando las dependencias adicionales en la configuración del vinculador.

Simplemente agregue libgadu a la lista de dependencias adicionales para Todas las configuraciones.

Otros consejos

Como Frank ya ha dicho, esto generalmente significa que una biblioteca (.lib o .dll) no se está vinculando. Sin embargo, si una compilación exitosa no crea archivos .dll o .lib, entonces el caso más probable es que los sistemas de compilación entre Cygwin y VS no estén sincronizados.

Específicamente, no se hace referencia a un archivo en el archivo de proyecto VS. Tengo la sensación de que es libgagdu.c en sí, ya que hay una función gg_login definida en

Simplemente agregue ese archivo al proyecto y reconstruya. Si funciona, comuníquese con los desarrolladores de libgadu para que puedan solucionarlo.

Es extraño, porque durante ./configure, make en Cygwin, no crea ningún archivo .dll y .lib.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top