如何将VSTS .lib转换为MinGW .a?

cha*_*m15 5 c linker static mingw visual-studio

我有一个用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'`.

任何帮助是极大的赞赏.

mos*_*o-x 5

您可以尝试将.lib转换为.a

http://code.google.com/p/lib2a/


Jon*_*win 5

.lib 和 .a 不是同一种格式。更改文件扩展名对链接器说谎,这就是它不起作用的原因。

如果它是您尝试链接的 32 位库,它应该“可以正常工作”。MinGW 支持 32 位 .lib 文件。如果没有,请提交错误报告。

如果它是一个 64 位库,并且您使用的是 MinGW-w64 或基于它的东西(如 TDM-GCC 64 位版本),请参阅MinGW-w64 常见问题条目

gendef mylib.dll
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libmylib.a --input-def mylib.def
Run Code Online (Sandbox Code Playgroud)