Pergunta

Eu quero usar libgadu (biblioteca de protocolo de mensagens instantâneas) em Visual Studio 2008. Tenho baixado libgadu http://toxygen.net/libgadu/files/ libgadu-1.8.2.tar.gz e sob cygwin eu compilei-lo - instalar ./configure, make, make. libgadu.h arquivo que appeard incluem pasta I copiados para outra pasta que está marcado no VS como arquivos, incluindo diretório.

Eu queria compilar o código de documentação

#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 a compilação i receber dois erros:

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

O que devo fazer com ele?

Foi útil?

Solução

Você precisa localizar o arquivo compilado DLL e LIB, ou apenas arquivos LIB se ele foi compilado em uma biblioteca estática. Os arquivos provavelmente será chamado libgadu.dll e libgadu.lib.

Uma vez que você tem aqueles, você pode instruir o Visual Studio para ligação com o arquivo LIB, selecionando Propriedades do projeto e localizar as dependências adicionais sob as configurações do vinculador.

Basta adicionar libgadu à lista de dependências adicionais para todas as configurações.

Outras dicas

Como Frank já disse, isso geralmente significa uma biblioteca (.lib ou .dll) não está sendo ligado contra. No entanto, se uma compilação bem-sucedida não cria .dll ou arquivos .lib, então o caso mais provável é que os sistemas de compilação entre Cygwin e VS estão fora de sincronia.

Especificamente, um arquivo é não ser referenciado no arquivo de projeto VS. Eu tenho um sentimento que é libgagdu.c -se como há uma função gg_login definido no -lo.

Basta adicionar o arquivo para o projeto e reconstruir. Se funcionar, contato com os desenvolvedores libgadu para que possam corrigi-lo em sua extremidade.

É estranho, porque durante ./configure, make em Cygwin, ele não cria quaisquer arquivos .dll e .lib.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top