Wpis z mikrobloga

#programowanie #cpp wyjaśnijcie debila into linkowanie w C++
1. dlaczego jak mam bibliotekę .dll to muszę zalinkować i .dll i .lib żeby z niej korzystać? Co jest w jednym a co w drugim?
2. dlaczego muszę jednocześnie includować pliki nagłówkowe i linkować binarki bibliotek?
  • 3
@onionomous:

1. dlaczego jak mam bibliotekę .dll to muszę zalinkować i .dll i .lib żeby z niej korzystać? Co jest w jednym a co w drugim?


Jak linkujesz statycznie czyli lib, to biblioteka jest wbudowywana w exeka programu. Jak linkujesz dynamicznie to bliblioteka nie siedzi w exeku tylko czytana jest z dllki. Po co w takim razie statyczna biblioteka podczas kompilacji? Tu już by trzeba było wniknąć w to jak działa
@onionomous:
Dlaczego potrzebjesz oprócz dll pliku lib? bo taki system sobie wymyślił M$, że system nie będzie miał dynamicznego linkera a w bibliotekach statycznych VC generuje sobie kod do linkowania z bibliotekami dll. BIlioteki dll da się używać bez plików lib, ale sam musisz sobie napisać kod który wczyta symbol z biblioteki dll. Pod linuxem gdzie linker jest w systemie nie potrzebujesz nic poza bibliotekami dynamicznymi .so