*.exp文件的作用是什么

What does *.exp file do?

本文关键字:作用 是什么 文件 exp      更新时间:2023-10-16

可能的重复:
exp的用途以及.lib和.dll 之间的区别

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

***.lib / ***.exp

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

来自MSDN

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

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

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

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

来自MSDN

来自MSDN:

Export(.exp)文件包含有关导出函数和数据项的信息。当LIB创建导入库时,它还会创建一个.exp文件。当链接一个程序时,可以直接或间接地将其导出到另一个程序,也可以从该程序导入时,可以使用.exp文件。如果使用.exp文件进行链接,则link不会生成导入库,因为它假定LIB已经创建了导入库。有关.exp文件和导入库的详细信息,请参见使用导入库和导出文件。