/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
(建立標頭單位)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應