DLL库的Def

来源:互联网 发布:linux的dd命令SD卡 编辑:程序博客网 时间:2024/06/18 09:44
http://www.cnblogs.com/yangnas/archive/2010/03/12/1684045.html

有时候我们拿到一个dll库却没有相应的导入库又或者是我们有dll库却希望在MinGW或者Cygwin环境下使用该库。

这时候必须生成一个dll库的导入库(Win下dll库的导入库默认是以.lib结尾,MinGW下的导入库是以.a结尾)

这个转化需要两步:

1. 首先生成dll库的def文件

    Windows + Visual Studio 下可以使用dumpbin(Visual Studio里自带),使用方法如下:

    C:\> dumpbin /EXPORTS filename.dll > filename.def

   Windows + Cygwin(或者MinGW) 下可以使用pexports工具,使用方法如下:

    $ pexports filename.dll > filename.def

    该工具的下载地址是:http://www.emmestech.com/software/pexports-0.43/download_pexports.html

    (推荐使用pexports工具导出def文件,这样可以导出无需修改的def文件) 

2. 利用dll库的def文件,最终生成导入库(微软的导入库是以.lib结尾,GNU环境下的导入库是以.a结尾)

 然后再用MinGW或这Cygwin里自带的dlltool工具来生成导入库

   $ dlltool -d filename.dll -d filename.def -l filename.lib

或者

   $ dlltool -d filename.dll -d filename.def -l libfilenam

0 0