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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Bo pliki nagłówkowe mówią tylko, że funkcja z takimi argumentami gdzieś będzie, a binarki ją zawierają.
Co do dll i lib to się nie znam. pisze pod Linuxem.
  • Odpowiedz
@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
  • Odpowiedz
@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
  • Odpowiedz