* .exp文件有什么作用?

时间:2012-12-02 07:52:19

标签: c++

  

可能重复:
  what is use of .exp and what is the difference between .lib and .dll

当我链接到某个c ++库时,对于每个* .lib,它与* .exp文件相关联。 * .exp做什么?

***.lib / ***.exp

2 个答案:

答案 0 :(得分:4)

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

From MSDN

  

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

     

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

     

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

     

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

From MSDN

答案 1 :(得分:2)

来自MSDN

  

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