生成导入库和导出文件

若要生成导入库和导出文件,请使用以下语法:

LIB /DEF[:deffile] [options] [objfiles] [libraries]

指定 /DEF 时,LIB 根据 LIB 命令中传递的导出规范创建输出文件。 有三种方法用于指定导出,按建议的使用顺序列出:

  1. 其中一个 objfile 或库中的 __declspec(dllexport) 定义

  2. /EXPORT 的规范:LIB 命令行上的名称

  3. deffile 中的 EXPORTS 语句中的定义

这些方法与你在链接导出程序时用于指定导出的方法相同。 程序可以使用多个方法。 你可以在命令文件中的 LIB 命令中指定 LIB 命令的部分(例如多个 objfile 或 /EXPORT 规范),就像在 LINK 命令中一样。

以下选项适用于生成导入库和导出文件:

/OUT:导入

覆盖正在创建的导入库的默认输出文件名。 未指定 /OUT 时,默认名称是 LIB 命令中第一个目标文件或库的基本名称和扩展名 .lib。 导出文件与导入库的基本名称相同,扩展名为 .exp。

/EXPORT: entryname[= internalname][,@ordinal[, NONAME]][, DATA]

从你的程序中导出一个函数以允许其他程序调用该函数。 你还可以导出数据(使用 DATA 关键字)。 导出通常在 DLL 中定义。

entryname 是函数或数据项的名称,它要供调用程序使用。 或者,你可以将内部名称指定为定义程序中已知的函数;默认情况下,internalname 与 entryname 相同。 ordinal 在 1 到 65,535 范围内指定导出表的索引;如果不指定 ordinal,LIB 会分配一个。 NONAME 关键字仅将函数导出为序号,不带有 entryname。 DATA 关键字用于导出纯数据对象。

/INCLUDE: 符号

将指定符号添加到符号表中。 此选项用于强制使用某个库对象(否则不会将此库对象包含在内)。

请注意,如果在创建 .dll 之前在初步步骤中创建导入库,则必须在生成 .dll 时传递相同的对象文件集,就像生成导入库时传递的那样。

另请参阅

使用导入库和导出文件