【发布时间】:2012-11-19 23:39:27
【问题描述】:
可能重复:
what is use of .exp and what is the difference between .lib and .dll
当我与某个 c++ 库链接时,对于每个 *.lib,它都与一个 *.exp 文件相关联。 *.exp 有什么作用?
***.lib / ***.exp
【问题讨论】:
标签: c++
可能重复:
what is use of .exp and what is the difference between .lib and .dll
当我与某个 c++ 库链接时,对于每个 *.lib,它都与一个 *.exp 文件相关联。 *.exp 有什么作用?
***.lib / ***.exp
【问题讨论】:
标签: c++
导出 (.exp) 文件包含有关导出函数和数据项的信息。当 LIB 创建一个导入库时,它也会创建一个 .exp 文件。当您链接一个程序,该程序直接或间接地从另一个程序导出和导入时,您将使用 .exp 文件。如果您使用 .exp 文件链接,LINK 不会生成导入库,因为它假定 LIB 已经创建了一个。
您可以使用带有 /DEF 选项的 LIB 来创建导入库和导出文件。 LINK 使用导出文件构建一个包含导出的程序(通常是动态链接库 (DLL)),并使用导入库来解析对其他程序中这些导出的引用。
请注意,如果您在初步步骤中创建导入库,则在创建 .dll 之前,您必须在构建 .dll 时传递与构建导入库时相同的一组目标文件。
在大多数情况下,您不需要使用 LIB 来创建导入库。当您链接包含导出的程序(可执行文件或 DLL)时,LINK 会自动创建一个描述导出的导入库。稍后,当您链接引用这些导出的程序时,您指定导入库。
但是,当 DLL 直接或间接地导出到它也从中导入的程序时,您必须使用 LIB 创建导入库之一。当 LIB 创建一个导入库时,它也会创建一个导出文件。链接其中一个 DLL 时必须使用导出文件。
【讨论】:
来自MSDN:
导出 (.exp) 文件包含有关导出函数和数据项的信息。当 LIB 创建一个导入库时,它也会创建一个 .exp 文件。当您链接一个程序,该程序直接或间接地从另一个程序导出和导入时,您将使用 .exp 文件。如果您使用 .exp 文件链接,则 LINK 不会生成导入库,因为它假定 LIB 已经创建了一个。有关 .exp 文件和导入库的详细信息,请参阅Working with Import Libraries and Export Files。
【讨论】: