可能重複:
what is use of .exp and what is the difference between .lib and .dll* .exp文件有什麼作用?
,當我和一些C++庫鏈接,每個*的.lib,它與* .EXP文件相關聯。 * .exp做什麼?
***.lib/***.exp
可能重複:
what is use of .exp and what is the difference between .lib and .dll* .exp文件有什麼作用?
,當我和一些C++庫鏈接,每個*的.lib,它與* .EXP文件相關聯。 * .exp做什麼?
***.lib/***.exp
導出(.exp)文件包含有關導出的函數和數據項的信息。當LIB創建一個導入庫時,它也會創建一個.exp文件。當鏈接一個程序時,您可以使用.exp文件,該程序既可以直接導出,也可以直接導入另一個程序。如果您鏈接到.exp文件,則LINK不會生成導入庫,因爲它假定LIB已經創建了一個導入庫。
您可以使用LIB帶/ DEF選項來創建一個導入庫和導出文件。 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。