Вопрос по visual-studio, mingw, c, static, linker – Как я могу преобразовать VSTS .lib в MinGW .a?

5

У меня есть статическая библиотека, скомпилированная с Visual Studio, и я хочу сделать ссылку на нее из MinGW.

Я попытался изменить суффикс, но получаю кучу предупреждений, таких как:Warning: .drectve /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' unrecognized.

Также несколько ошибок, в том числе:./libetpan.a(Release_ssl/mailimap.obj):(.text[_mailimap_noop]+0x7): undefined reference to___ security_cookie & APOS; `.

Любая помощь очень ценится.

Ваш Ответ

2   ответа
3

..a - это не один и тот же формат. Изменение расширения файла лежит на компоновщике, поэтому он не работает.

Если вы пытаетесь связать 32-битную библиотеку, она должна "просто работать". MinGW поддерживает 32-битные .lib файлы. Если это не так, подайте отчет об ошибке.

Если это 64-битная библиотека, и вы используете MinGW-w64 или что-то на ее основе (например, 64-битная версия TDM-GCC), см.MinGW-w64 FAQ FAQ:

gendef mylib.dll
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libmylib.a --input-def mylib.def
5

Похожие вопросы