Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Statyczne linkowanie bibliotek dynamicznych DLL

Ostatnio zmodyfikowano 2014-11-10 14:09
Autor Wiadomość
KemotPL
Temat założony przez niniejszego użytkownika
Statyczne linkowanie bibliotek dynamicznych DLL
» 2014-10-27 16:13:33
Witam!
Jestem początkującym programistą. Moje IDE to Code::Blocks.
Moje pytanie brzmi: Czy da się statycznie zalinkować biblioteki dynamiczne DLL. Jeśli linkuję bibliotekę np. cURL to do poprawnego działania pliki .dll muszą być razem z .exe. Otóż chodzi mi o to by program po kompilacji był
tylko 1 sprawnym plikem .exe.

Z góry dziękuję. :)
P-119510
Gabes
» 2014-10-27 16:27:01
libcurl.a
libcurldll.a
P-119512
KemotPL
Temat założony przez niniejszego użytkownika
Nic to nie dało
» 2014-10-27 18:12:13
Dodałem do linker settings libcurl.a oraz libcurldll.a ale program cały czas krzyczy o libcurl.dll  Jak dodam tego dlla obok exe to dziła a mi chodzi o to aby był sam exe'k. :(
P-119518
1aam2am1
» 2014-10-27 18:53:53
to wtedy nie możesz linkować dll tylko
a) dostarczyć żródła
b) zalinkować statycznie bibliotekę statyczną
P-119521
KemotPL
Temat założony przez niniejszego użytkownika
Eeekhm
» 2014-10-27 20:14:10
Wybacz mi ale dalej nie bardzo to rozumiem. Czy mógłbyś mi to wyjaśnić krok po kroku.
P-119536
1aam2am1
» 2014-10-27 20:25:24
DDL -dynamik link library. Czyli jej nie zalinkujesz tak żebyś mógł program mógł uruchomić bez dll
Potrzebujesz static link library czyli *.a lub *.lib który zawiera skompilowane funkcje
http://en.wikipedia.org/wiki/Static_library
P-119537
KemotPL
Temat założony przez niniejszego użytkownika
» 2014-10-27 20:52:55
Tak właśnie robię linkuje tylko .a i .lib (w moim przypadku libcurl.a) a program po uruchomieniu jeśli w tym samym w folderze co exe nie ma dll'ów pokazuje komunikat "Nie można uruchomić programu ponieważ nie odnaleziono libcurl.dll na tym komputerze"
Potem jeszcze z kilkoma innym dll'ami.
P-119541
1aam2am1
» 2014-10-27 21:03:46
Pliki *.a i *.lib są używane do łączenia programu w całość (na poziomie linkowania) (poczytaj o procesie kompilacji) i te pliki się dzielą albo zawierają funkcje i są wtedy (static link library) albo zawierają tylko deklaracje połączeń z zewnętrzną bazą funkcji (*.dll)

http://shk-programowanie.cba.pl/cppkompilacja.php
P-119542
« 1 » 2
  Strona 1 z 2 Następna strona