MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Windows, MinGW и lib/a"
Answer 877610
Заголовочных файлов для использования DLL, естественно, недостаточно. Они содержат объявления функций, но как компоновщик найдет реализацию (точнее поймет, что она подгружается динамически)? Для этого к каждой DLL и прилагается статическая библиотека ("библиотека импорта"), которая предоставляет компоновщику необходимую информацию. Технически библиотека импорта не является полноценной статической библиотекой (т.е., архивом объектных файлов), ее структура намного проще, но с точки зрения работы компоновщика особой разницы нет, поэтому можно назвать ее так.
lib - расширение файлов статических библиотек, принятое в Windows. a - аналогично в UNIX-системах. MinGW на самом деле поддерживает оба формата библиотек (Источник: Specify the libraries for the linker to use). Если для вас это не работает, возможно, нужно просто обновить версию.
А искать библиотеки импорта методом тыка не надо. Открываете страницу документации для функции (например, https://docs.microsoft.com/en-us/windows/desktop/api/commdlg/nf-commdlg-getopenfilenamew), у нее внизу указано имя библиотеки импорта (в данном случае Comdlg32.lib). Если ищете в папках mingw, добавляете в начало имени "lib..." и меняете расширение на ".а". Если в папках MinGW ее нет, скачиваете последнюю версию Windows SDK, устанавливаете и берете lib-файл из папки
Program Files\Microsoft SDKs
илиProgram Files\Windows Kits
. С высокой вероятностью MinGW примет его.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.