在知道拥有动态库和头文件的情况下,但没有动态库符号文件的情况下,如何静态链接动态库?
1.使用 Microsoft Visual Studio Tools 命令行命令生成 xxx.def 文件,进而使用 xxx.def 文件生成 xxx.lib 文件。
例子:
打开命令提示符
它可以在Visual Studio工具菜单项中找到:开始/程序文件/ Microsoft Visual Studio / Visual Studio工具/ Visual Studio命令提示符。
提取符号
在命令提示符下键入:
dumpbin / exports“C: Program Files VideoLAN VLC libvlc.dll”>“C: Program Files VideoLAN VLC libvlc.def”
编辑libvlc.def文件并修改它以获得如下内容:
EXPORTS
libvlc_add_intf
libvlc_audio_get_channel
libvlc_audio_get_mute
libvlc_audio_get_track
libvlc_audio_get_track_count
libvlc_audio_get_track_description
libvlc_audio_get_volume
...
或者,以下命令将自动生成DEF文件:
echo EXPORTS> libvlc.def
for / f“usebackq tokens = 4,* delims = _”%i in(`dumpbin / exports“c: Program Files VideoLan VLC libvlc.dll”`)如果%i = = = libvlc echo%i_%j >> libvlc.def
生成.lib
仍在命令提示符下键入:
lib / def:“C: Program Files VideoLAN VLC libvlc.def”/ out:“C: Program Files VideoLAN VLC libvlc.lib”/ machine:x86
当然,您需要根据您的配置调整路径。
瞧瞧!你拥有它,现在你可以在你的程序中链接libvlc.lib