1. 程式人生 > >c++通過dll生成lib

c++通過dll生成lib

在使用一些沒有lib的第三方庫,又懶得顯示載入時,根據dll生成lib就可以解決這個問題。

工具:VS2010, VLC的libvlc.dll

  1. 開啟工具 Visual Studio Tools command promopt (Start -> All Programs-> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt).

2.生成 .def檔案,如果Dll檔案已經存在對應的.def檔案,這一步可以省略。使用dumpbin命令生成對應的.def檔案:dumpbin /exports libvlc.dll,顯示如下: 
這裡寫圖片描述

 
建立一個.def檔案(我的是 libvlc.def), 編輯該檔案,將上述紅框內的函式名複製到該檔案中,在首行中新增EXPORTS,如下圖: 
這裡寫圖片描述

3.生成.lib。使用 visual studio command prompt命令視窗,執行如下命令:

lib /def:libvlc.def /out:libvlc.lib /machine:x86

lib命令說明:

usage: LIB [options] [files]

options:

/DEF[:filename] 
/EXPORT:symbol 
/EXTRACT:membername 
/INCLUDE:symbol 
/LIBPATH:dir 
/LIST[:filename]

/MACHINE:{AM33|ARM|EBC|IA64|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|SH3|SH3DSP|SH4|SH5|THUMB|X86} 
/NAME:filename 
/NODEFAULTLIB[:library] 
/NOLOGO 
/OUT:filename 
/REMOVE:membername 
/SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER| 
EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS| 
WINDOWSCE}[,#[.##]] 
/VERBOSE

/MACHINE引數必須選擇正確的機器型別。