生成导入库和导出文件

更新:2007 年 11 月

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

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

若指定了 /DEF,则 LIB 从 LIB 命令中传递的导出规范创建输出文件。有三种指定导出的方法,按照建议的使用顺序依次为:

  1. objfileslibraries 之一中的 __declspec(dllexport) 定义

  2. LIB 命令行中的 /EXPORT:name 规范

  3. deffile 的 EXPORTS 语句中的定义

这些方法与链接导出程序时用来指定导出的方法相同。程序可使用一种以上的方法。与在 LINK 命令中一样,在 LIB 命令的命令文件中也可以指定 LIB 命令的各部分(如多个 objfiles 或 /EXPORT 规范)。

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

  • /OUT:import
    重写正在创建的 import 库的默认输出文件名。未指定 /OUT 时,默认名称是 LIB 命令中第一个对象文件或库的基文件名和扩展名 .lib。导出文件的基文件名和导入库相同,扩展名是 .exp。

  • /EXPORT:entryname[=internalname][,@ordinal\[,NONAME]][,DATA]
    从程序中导出函数,以允许其他程序调用该函数。也可导出数据(使用 DATA 关键字)。通常在 DLL 中定义导出。

    entryname 是将由调用程序使用的函数名或数据项名。或者,可将 internalname 指定为定义程序中的已知函数;默认情况下,internalnameentryname 相同。ordinal 在 1 到 65,535 的范围内指定导出表中的索引;如果没有指定 ordinal,LIB 将分配一个。NONAME 关键字只将函数导出为序号,没有 entrynameDATA 关键字用于导出纯数据对象。

  • /INCLUDE:symbol
    将指定符号添加到符号表中。此选项对强制使用本来不会包括在内的库对象很有用。

注意:如果在预备步骤中创建 .dll 之前创建导入库,则在生成 .dll 时必须传递与生成导入库时所传递的相同的对象文件组。

请参见

参考

使用导入库和导出文件