Frage

ich verwenden möchte libgadu (Bibliothek von Instant-Messaging-Protokoll) unter Visual Studio 2008. Ich habe libgadu http://toxygen.net/libgadu/files/ libgadu-1.8.2.tar.gz und unter cygwin ich habe es kompiliert - configure, make, make install. Die Datei libgadu.h, die in appeard umfassen Ordner I in einem anderen Ordner kopiert, die in VS als einschließlich Dateien Verzeichnis markiert ist.

Ich wollte Code von Unterlagen zusammenzustellen

#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");
}

Beim Übersetzen i erhalten zwei Fehler:

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

Was soll ich tun damit?

War es hilfreich?

Lösung

Sie müssen die kompilierte DLL und LIB-Datei, oder einfach nur LIB-Datei zu suchen, wenn es in eine statische Bibliothek kompiliert wurde. Die Dateien werden wahrscheinlich genannt libgadu.dll und libgadu.lib werden.

Wenn Sie die haben, können Sie Visual Studio anweisen, mit der LIB-Datei zu verknüpfen, indem Sie Projekteigenschaften auswählen und Lokalisieren der zusätzliche Abhängigkeiten unter den Linker-Einstellungen.

Just libgadu die zusätzliche Abhängigkeiten Liste für alle Konfigurationen hinzuzufügen.

Andere Tipps

Wie Frank schon gesagt, bedeutet dies in der Regel eine Bibliothek (LIB oder DLL) nicht gegen immer verbunden. Wenn jedoch eine erfolgreiche Kompilierung keine DLL- oder LIB-Dateien, dann ist der wahrscheinlichste Fall ist, dass die Build-Systeme zwischen Cygwin und VS sind nicht synchron erstellen.

Insbesondere wird eine Datei nicht im VS-Projektdatei verwiesen zu werden. Ich habe das Gefühl, es ist libgagdu.c selbst, da es eine gg_login Funktion ist definiert in es.

Fügen Sie einfach die Datei zu dem Projekt und wieder aufzubauen. Wenn es funktioniert, kontaktieren Sie die libgadu Entwickler, damit sie es an ihrem Ende beheben.

Es ist seltsam, weil während configure, in Cygwin macht, ist es keine DLL und LIB-Dateien erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top