Динамическая линковка используется, когда твоя программа имеет несколько модулей, использующих одни и те же функции. Их и есть смысл выделить в отдельную динамическую библиотеку. В этом случае сокращается место занимаемое программой. Но не все ОС поддерживают динамические библиотеки.
Статическая линковка используется для создания единого исполняемого файла, который не зависит от сторонних библиотек. Т.е. такой файл можно спокойно переносить с компьютера на компьютер, и он будет работать (если, конечно, ОС одна и та же). Если несколько модулей одной программы используют одни и те же функции, которые прилинкованы статически к каждому модулю, то итоговый размер программы возрастает. С другой стороны, если используется только одна функция из большой библиотеки, то очень вероятно, что линкер только ее и прикрепит к исполняемому файлу, а остальное выкинет. Что сильно сэкономит размер программы. |