共用方式為


/reference (使用具名模組 IFC)

告知編譯器使用現有的 IFC ( .ifc ) 進行目前的編譯。

語法

/reference module-name=filename
/reference filename

引數

filename
包含 IFC 資料的 檔案名,這是預先建置的模組資訊。 若要匯入多個模組,請為每個檔案包含個別 /reference 的選項。

module-name
匯出的主要模組介面單元名稱或完整模組資料分割名稱的有效名稱。

備註

在大部分情況下,您不需要指定此參數,因為專案系統會自動探索解決方案內的模組相依性。

編譯 /reference 程式選項需要您啟用 /std:c++20 或更新版本的編譯器選項 (例如 /std:c++latest )。 此選項 /reference 可從 Visual Studio 2019 16.10 版開始提供。

/reference如果引數是 filename 沒有 module-name 的 ,則會在執行時間開啟檔案,以確認 filename 引數名稱為特定匯入。 在具有許多 /reference 引數的案例中,這可能會導致執行時間效能變慢。

module-name必須是有效的主要模組介面單元名稱或完整的模組分割區名稱。 主要模組介面名稱的範例包括:

  • M
  • M.N.O
  • MyModule
  • my_module

完整模組分割名稱的範例包括:

  • M:P
  • M.N.O:P.Q
  • MyModule:Algorithms
  • my_module:algorithms

如果使用 建立 module-name 模組參考,則如果編譯器遇到該名稱的匯入,則命令列上的其他模組不會搜尋。 例如,假設有下列命令列:

cl ... /std:c++latest /reference m.ifc /reference m=n.ifc

在上述案例中,如果編譯器看到 import m;m.ifc 則不會搜尋。

範例

根據下表所列的三個模組:

模組 IFC 檔案
M m.ifc
M:Part1 m-part1.ifc
Core.Networking Networking.ifc

使用 引數的 filename 參考選項如下所示:

cl ... /std:c++latest /reference m.ifc /reference m-part.ifc /reference Networking.ifc

使用的 module-name=filename 參考選項如下所示:

cl ... /std:c++latest /reference m=m.ifc /reference M:Part1=m-part.ifc /reference Core.Networking=Networking.ifc

另請參閱

/scanDependencies (以標準形式列出模組相依性)
/sourceDependencies:directives (列出模組和標頭單位相依性)
/headerUnit (使用標頭單位 IFC)
/exportHeader (建立標頭單位)