Создание lib-файла по dll

Создание 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++