光说有毛用


VC MINGW dll lib 转换

· by admin · Read in about 1 min · (128 Words)
mingw vc dll lib 

VC MINGW dll lib 相互转换

  1. VC XX.lib -> MINGW libXX.a

    reimp XX.lib
    

    reimp 是mingw自带的工具,位于mingw/mingw-utils-0.x/目录下

  2. 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也可以使用

  3. VC XX.dll -> mingw libXX.a

    pexports XX.dll > XX.def
    
    dlltool --dllname XX.dll --def XX.def --output-lib libXX.a
    

    dlltool是mingw自带工具

  4. 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自带

  5. 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环境程序

  6. MINGW libXX.a -> VC xx.lib (lib为纯静态库,不需要dll)

    MINGW 和 VC 的纯静态库不能相互转换!

  7. 从DLL导出def文件还可以使用手工编辑+ vc dumpbin

    请参考http://blog.csdn.net/ubuntu64fan/article/details/8927173

补充 将.o 文件合并成.a

ar -crv libXX.a xxx.o xxx1.o ….

参考

  1. mingw&vc静态库lib http://blog.csdn.net/u011191259/article/details/49493497

  2. 把库文件从msvc格式.lib转化成MinGW格式.a的方法 http://blog.csdn.net/wanggang999/article/details/3284539

  3. mingw如何使用VC编译的dll http://blog.csdn.net/hellosijian/article/details/7425794

  4. 从DLL生成LIB http://blog.csdn.net/ubuntu64fan/article/details/8927173

Comments