我有一个用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'`。
非常感谢任何帮助。
答案 0 :(得分:5)
您可以尝试使用
将.lib转换为.a答案 1 :(得分:3)
.lib和.a的格式不同。更改文件扩展名是链接器,这就是它无法正常工作的原因。
如果它是您尝试链接的32位库,它应该“正常工作”。 MinGW支持32位.lib文件。如果没有,请提交错误报告。
如果它是64位库,并且您正在使用MinGW-W64或基于它的东西(如TDM-GCC 64位版本),请参阅MinGW-w64 FAQ entry:
gendef mylib.dll
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libmylib.a --input-def mylib.def