Statyczne linkowanie bibliotek dynamicznych DLL
Ostatnio zmodyfikowano 2014-11-10 14:09
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ę. :) |
|
Gabes |
» 2014-10-27 16:27:01 libcurl.a libcurldll.a |
|
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. :( |
|
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ą |
|
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. |
|
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 |
|
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. |
|
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 |
|
« 1 » 2 |