2012-08-03 35 views
5

我有一个用Visual Studio编译的静态库,我想从MinGW链接到它。如何将VSTS .lib转换为MinGW .a?

我试着改变后缀,但我得到了一堆警告,如: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'`。

任何帮助,非常感谢。

回答

3

的.lib对u和。一个是不一样的格式。更改文件扩展名位于链接器,这就是为什么它不工作。

如果它是一个32位库,你试图链接,它应该“只是工作。” MinGW支持32位.lib文件。如果没有,请提交错误报告。

如果是64位的库,并且使用的是基于它的(如TDM-GCC 64位版本)的MinGW-W64什么看MinGW-w64 FAQ entry

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