.LIB
(библиотека) - это наборы скомпилированных исходных файлов (объектных файлов), которые вы можете связать в своем приложении для обеспечения функциональности.Связывание делает объектные файлы частью вашего исполняемого файла.Обычно это называется static linking
, и именно поэтому вы получили ошибку времени компиляции из-за пропущенных символов;файлы библиотеки не были доступны для извлечения необходимого объектного кода, чтобы добавить его в ваше приложение.
.DLL
(библиотека динамических ссылок) - это скомпилированные исходные файлы, которые вы можете загрузить во время выполнения и использоватьконкретная функциональность (обычно по имени) от;они не являются частью вашего исполняемого файла, но загружаются во время выполнения из самой DLL.(Отсутствие доступных библиотек DLL означает, что ваше приложение не запускается.) Они не нужны во время компиляции, а только во время выполнения.
Некоторые IDE (такие как VisualStudio C / C ++) делает доступными как статический файл .LIB
, так и версию .DLL
, так что вы можете выбрать, чтобы библиотеки времени выполнения были связаны непосредственно с вашим приложением или чтобы они были доступны для динамической загрузки во время выполнения.(Второе полезно, например, если у вас есть несколько приложений, которые вы разработали; вы можете использовать динамическую версию MSVCRTL, чтобы резко уменьшить размер ваших исполняемых файлов, раздельно распределяя RTL вместо того, чтобы связывать их с каждым приложением.