Проект содержит больше lib, чем dll файлов - PullRequest
2 голосов
/ 27 июля 2011

Я пытаюсь понять проект визуальной студии, который я скачал.Есть две папки: bin и lib.Количество файлов lib в папке lib превышает количество dll в папке bin.

Я думал, что каждый файл dll может иметь файл lib (библиотека объектных файлов).Таким образом, количество файлов lib в проекте равно или меньше, чем количество DLL.Но в загруженном проекте все наоборот?В чем причина этого?Являются ли некоторые файлы lib статически связанными?

Большое спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Конечно, есть библиотеки, которые не имеют соответствующей DLL. Если вы установите тип проекта в «статическую библиотеку», ваш вывод будет файлом lib, который может статически связываться с другой библиотекой lib, dll или exe.

Когда вы создаете dll, автоматически создается файл lib, который берет на себя ответственность за удобную упаковку вызовов LoadLibrary и GetProcAddress. Вы статически ссылаетесь на эту библиотеку, и она загружает dll для вас.

1 голос
/ 27 июля 2011

библиотеки без dll статически связаны с exe во время компиляции, тогда как dll скомпилированы в их собственный файл dll.Часто библиотеки dll позволяют компилировать и выгружать библиотеки dll без замены exe.Тем не менее, некоторые проекты имеют только статически связанные библиотеки, что приводит к одному большему exe без dll.

...