2012-08-03 88 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