статическая библиотека v.s. импортировать библиотеку на платформе Windows - PullRequest
8 голосов
/ 05 ноября 2011

Как я могу сказать, что один .lib файл является статической библиотекой по сравнению с библиотекой импорта для DLL?Есть ли какой-либо инструмент или команда, которая могла бы сделать это?

Второй вопрос: как я могу проверить зависимости статической библиотеки, я имею в виду, как узнать, какие библиотеки DLL включены в эту статическую библиотеку?

Спасибо за любую помощь здесь.

С уважением,

Ответы [ 2 ]

5 голосов
/ 05 ноября 2011

Библиотека импорта добавит зависимость DLL к вашей программе. Ваша программа не запустится, если у вас нет DLL. (Вы можете использовать Dependency Walker для получения имен библиотек DLL вашей программы)

Статические библиотеки Afaik не имеют зависимостей. Они связаны с программой, только ошибки компоновщика скажут вам, зависит ли эта конкретная библиотека от другой библиотеки. (По крайней мере, в GCC я не знаю, хочет ли это поведение инструментов MS.)

2 голосов
/ 15 августа 2018

Учитывая только файл wtf.lib, вопрос состоит в том, чтобы определить, является ли этот файл библиотеки static library или import library.Текущий способ, которым я делаю это (через комбинацию приглашения DOS и оболочки cygwin bash).

В приглашении DOS необходимо правильно запустить dumpbin.exe:

dumpbin -all wtf.lib > wtf.lib.txt

Затем в оболочке cygwin:

grep 'Archive member name' wtf.lib.txt

Если вывод grep выводит имя файла DLL, то wtf.lib является import library.Иначе, это автономный static library.

...