У меня есть проект «Logger», в котором тип конфигурации .dll.
«Logger» использует «libconfig» (синтаксический анализатор с открытым исходным кодом). В настоящее время у меня есть отдельный проект для «libconfig» и его тип конфигурации .lib
Я добавил «libconfig» в настройки и ссылки Logger с помощью:
В командной строке компоновщика Logger я вижу:
/ IMPLIB: «путь \ к \ Logger.lib»
Мой вопрос:
Зачем нужно создавать Logger.lib? я вижу
/ OUT = «путь \ к \ Logger.dll», но я пытаюсь освоить процесс сборки visual studio.
От M $ IMPLIB документ, Я вижу свою часть процесса LINK. Я до сих пор не понимаю.
Редактировать: я не упомянул, как использовать Logger DLL. Мое приложение будет загружать его во время выполнения (поскольку эта функциональность требуется только для определенных аргументов строки cmd)
DLL содержит код. Файл .lib содержит в основном заглушки для функций в файле, которые позволяют (и относительно быстро) компоновщику поместить правильную информацию в исполняемый файл для использования функций в DLL.
В конечном счете, нет причин, по которым они иметь чтобы сделать это — он в основном делает компоновщик немного проще и быстрее, потому что ему не требуется (по крайней мере, так много) код специального случая для работы со статическими и динамическими библиотеками. Они могли бы обойти это, поместив код и информацию о ссылках в один файл, но это увеличило бы размер файла (немного).
Возможно, сейчас это мало что значит, но в то время, когда Windows была новой, довольно много программ все еще распространялось на гибких дисках 360K, поэтому минимизация размера файла, который вы распространяли среди пользователей, считалась довольно важной.
EXE-файл, который использует ваш файл logger.dll, потребуется для ссылки на logger.lib. Без библиотеки exe не может быть построен. Библиотека содержит функции-заглушки, которые удовлетворяют вызовам, выполняемым исполняемым кодом. (Во время выполнения заглушки переводят вызовы в DLL.)