Создание lib-файла по dll
Зачем?
Часто возникает необходимость использовать в своём проекте сторонние динамические библиотеки, но описывать динамическую загрузку долго и намного проще прописать lib-файл в настройках Visual Studio. Что если вы хотите использовать какую-нибудь Open Source библиотеку и компилировать её вам не хочется? Вы скачали бинарники из Интернета, но lib-файлов либо с ними нет, либо они не подходят для вашей VS. Выход есть - создайте lib-ы по dll.
Создание lib-файла
В примере я использовал Microsoft Visual C++ 2008 Express Edition на 32-битном Windows. Для 64-битного Windows пути могут незначительно отличатся. Алгоритм:
1. Для начала запускаем командную строку CMD.
2. Переходим в директорию: "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\".
3. Запускаем файл vcvars32.bat для настройки переменных окружения.
4. Набираем команду:
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe" /exports "your_dll.dll" > "your_dll.def"
То есть получаем список экспортных функций. Правда, def-файл может у вас уже быть, тогда вам этот и следующий пункт выполнять не нужно.
5. Потом редактируем файл your_dll.def, так чтобы он был похож на следующий:
EXPORTS libvlc_add_intf libvlc_audio_get_channel libvlc_audio_get_mute libvlc_audio_get_track libvlc_audio_get_track_count libvlc_audio_get_track_description libvlc_audio_get_volume libvlc_audio_output_device_count ...............
6. Осталось набрать команду:
lib /def:"your_dll.def" /out:"your_dll.lib" /machine:x86
И вы получите your_dll.lib файл.
Теги: C++