c++由动态库dll文件生成lib文件的方法

957 阅读1分钟

在msvc中,对于动态库的使用,通常有两种方法,一种方法是动态加载,在程序运行过程中,使用LoadLibrary()、GetProcessAddress()和FreeLibrary()三个函数动态的对动态库进行加载和卸载,此方法在编译运行时只需要dll文件的支持即可 另一种方法是静态加载,静态加载不仅需要dll文件,在程序编译时也需要dll文件对应的lib文件,这个lib文件会记录动态库名称与函数入口,使程序开始运行时能够正确的对动态库文件进行载入并使用。 但是很多动态库dll文件,并没有附带lib文件,因此就无法以静态加载的方式去使用。但是此问题也是有解决办法的,就是从dll文件去生成一个lib文件。 下面就介绍如何将dll文件去生成对应的lib文件

1.生成def文件

需要用到一个工具:[pexports] (sourceforge.net/projects/mi…) 将下载的pexports解压,得到pexport.exe,将pexport.exe拷贝到动态库所在目录,打开cmd,切换到此目录

输入

pexport.exe libvlc.dll > libvlc.def

这样就能够将libvlc.dll这个动态库文件生成libvlc.def文件了

2.生成lib文件

在开始,程序菜单中,找到msvc命令提示工具并打开,切换到动态库所在目录

输入

lib /def:libvlc.def /MACHINE:x86

正在创建

Microsoft (R) Library Manager Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

   正在创建库 libvlc.lib 和对象 libvlc.exp

之后就可以得到libvlc.exp、libvlc.lib这两个文件了,libvlc.lib就是我们要的动态库libvlc.dll对应的lib文件


相关下载:

pexports-0.47-mingw32-bin.7z