【问题标题】:What does *.exp file do? [duplicate]*.exp 文件有什么作用? [复制]
【发布时间】: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++


    【解决方案1】:

    导出 (.exp) 文件包含有关导出函数和数据项的信息。当 LIB 创建一个导入库时,它也会创建一个 .exp 文件。当您链接一个程序,该程序直接或间接地从另一个程序导出和导入时,您将使用 .exp 文件。如果您使用 .exp 文件链接,LINK 不会生成导入库,因为它假定 LIB 已经创建了一个。

    From MSDN

    您可以使用带有 /DEF 选项的 LIB 来创建导入库和导出文件。 LINK 使用导出文件构建一个包含导出的程序(通常是动态链接库 (DLL)),并使用导入库来解析对其他程序中这些导出的引用。

    请注意,如果您在初步步骤中创建导入库,则在创建 .dll 之前,您必须在构建 .dll 时传递与构建导入库时相同的一组目标文件。

    在大多数情况下,您不需要使用 LIB 来创建导入库。当您链接包含导出的程序(可执行文件或 DLL)时,LINK 会自动创建一个描述导出的导入库。稍后,当您链接引用这些导出的程序时,您指定导入库。

    但是,当 DLL 直接或间接地导出到它也从中导入的程序时,您必须使用 LIB 创建导入库之一。当 LIB 创建一个导入库时,它也会创建一个导出文件。链接其中一个 DLL 时必须使用导出文件。

    From MSDN

    【讨论】:

      【解决方案2】:

      来自MSDN

      导出 (.exp) 文件包含有关导出函数和数据项的信息。当 LIB 创建一个导入库时,它也会创建一个 .exp 文件。当您链接一个程序,该程序直接或间接地从另一个程序导出和导入时,您将使用 .exp 文件。如果您使用 .exp 文件链接,则 LINK 不会生成导入库,因为它假定 LIB 已经创建了一个。有关 .exp 文件和导入库的详细信息,请参阅Working with Import Libraries and Export Files

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-24
      • 2015-05-03
      • 2011-02-13
      • 2012-06-07
      • 2013-07-08
      • 2010-10-27
      • 2019-05-06
      • 1970-01-01
      相关资源
      最近更新 更多