VC MINGW dll lib 转换
VC MINGW dll lib 相互转换
VC XX.lib -> MINGW libXX.a
reimp XX.lib
reimp 是mingw自带的工具,位于mingw/mingw-utils-0.x/目录下
VC XX.dll -> VC XX.lib
pexports XX.dll > XX.def lib /machine:i386 /def:XX.def
pexports是mingw的gnu工具
下载地址: https://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/
或者通过 mingw-get install pexports安装
lib 是vc编译工具,安装vs系列环境后就有
/machine 参数决定生成32位还是64位程序,详细请自行查看相关帮助
注:此处生成的lib文件MINGW也可以使用
VC XX.dll -> mingw libXX.a
pexports XX.dll > XX.def dlltool --dllname XX.dll --def XX.def --output-lib libXX.a
dlltool是mingw自带工具
MINGW libXX.a -> mingw XX.dll
ar x libXX.a gcc -shared -o XX.dll *.o -Wl,--export-all-symbols,--output-def,XX.def
ar 和 gcc 均为mingw自带
MINGW libXX.a -> VC xx.lib (lib为动态库符号表索引,必须使用dll)
ar x libXX.a gcc -shared -o XX.dll *.o -Wl,--export-all-symbols,--output-def,XX.def lib /machine:i386 /def:XX.def
ar 和 gcc 为mingw环境程序 lib为VC环境程序
MINGW libXX.a -> VC xx.lib (lib为纯静态库,不需要dll)
MINGW 和 VC 的纯静态库不能相互转换!
从DLL导出def文件还可以使用手工编辑+ vc dumpbin
补充 将.o 文件合并成.a
ar -crv libXX.a xxx.o xxx1.o ….
参考
mingw&vc静态库lib http://blog.csdn.net/u011191259/article/details/49493497
把库文件从msvc格式.lib转化成MinGW格式.a的方法 http://blog.csdn.net/wanggang999/article/details/3284539
mingw如何使用VC编译的dll http://blog.csdn.net/hellosijian/article/details/7425794
从DLL生成LIB http://blog.csdn.net/ubuntu64fan/article/details/8927173