Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ligadu - problemy linkowania
Konnekt | Forum > Developerzy > Tworzenie wtyczek
conexion2000
Witam!
Chciałem wykorzystać źródła uniksowego libgadu przerobionego na potrzeby konnekta. W finalnej fazie linkwania mam jednak pewne problemy. Najpierw zainstalowałem narzędzia z pakietu mingw. W libgadu skompilowałem wszytskie pliki (wiele ostrzeżeń) do plików obiektowych (http.c -> http.o). Następnie wszytskie te pliki włączyłem do statycznej biblioteki libgadu.a (ar cru) i na końcu ranlib libgadu.a. I bibliotekę mam już gotową. Następnie próbuje skompilować program:
CODE
#include "libgadu.h"

main()
{
    gg_debug_level=255;
    gg_session *sesja;
    gg_login_params parametry;
    memset(&parametry,0,sizeof(parametry));
    parametry.uin=1234567;
       parametry.password="haslo";
    parametry.status=GG_STATUS_AVAIL;
    sesja = gg_login(&parametry);
    
}

poleceniem:
CODE

g++ program.cpp -c -o program.o -I"C:\OpenSSL\include"


i linkuje:
CODE

g++ house.o libgadu.a -o program -L"C:\OpenSLL\lib\MinGW"


i tu jest błąd:
CODE

program.o(.text+0x2e):program.cpp: undefined reference to '_imp__gg_debug_level'
program.o(.text+0x6f):program.cpp: undefined reference to '_imp__gg_login'


Co jest nie tak? Ten sam program takim samym sposobem pod linuksem kompiluje się bez problemów. Proszę o pomoc.
Olórin
Sprawdź inny kompilator (MSVS 2003)
conexion2000
Dopóki język C++ jest standaryzowany, inny kompilator nic nie zmieni. Ja sądze, że to przez to, że libgadu w tej wersji była dostosowywana do biblioteki współdzielonej dll. A ja ją tak bez ceregieli wykorzystałem do statycznej. Proszę szybko podpowiedzcie, ewentualnie jak mogę ją użyć jako dll-a, bo nie bardzo się tym zajmowałem, a do oceny pozostało mi jeszcze pare dni. (licealne zaliczenie smile.gif)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.