共用方式為


/GL (整個程式優化)

啟用整個程式最佳化。

語法

/GL[-]

備註

整個程式優化可讓編譯程式使用程式中所有模組的信息來執行優化。 若沒有整個程式優化,則會以每個模組 (編譯和) 為基礎執行優化。

默認會關閉整個程序優化,而且必須明確啟用。 不過,您也可以使用 明確停用它 /GL-

使用所有模組的信息,編譯程式可以:

  • 優化跨函式界限的緩存器使用。

  • 對全域數據進行追蹤修改,以便減少負載和存放區的數目。

  • 追蹤指標取值所修改的可能專案集,減少所需的載入和存放區。

  • 在模組中內嵌函式,即使函式是在另一個模組中定義也一樣。

.obj/GL 產生的檔案無法由連結器公用程式使用,例如 EDITBINDUMPBIN

如果您使用和/c編譯程式/GL,則應該使用 /LTCG 連結器選項來建立輸出檔案。

/ZI 無法搭配使用 /GL

舊版 Visual Studio 和 MSVC 工具組通常無法讀取目前版本中所產生的 /GL 檔案格式。 除非您願意為所有版本的 Visual Studio 寄送檔案複本.lib,否則您預期用戶現在及未來會使用,請勿寄送.lib由 所產生的/GL檔案所.obj組成的檔案。 如需詳細資訊,請參閱 二進位相容性的限制。

.obj/GL 和 先行編譯頭檔產生的檔案不應該用來建置檔案,除非檔案.lib連結在產生/GL.obj檔案的同一.lib部計算機上。 在連結時,需要來自 .obj 檔案預先編譯頭文件的資訊。

如需可用最佳化的詳細資訊,以及整個程式優化的限制,請參閱 /LTCG/GL 也會讓配置檔引導式優化可供使用。 針對配置檔引導式優化進行編譯,而且如果您想要從配置檔引導式優化進行函式排序時,您必須使用 /Gy 或 隱含 /Gy 的編譯程式選項進行編譯。

在 Visual Studio 開發環境中設定這個連結器選項

如需如何在開發環境中指定 /GL 的詳細資訊,請參閱 /LTCG (鏈接時間程式代碼產生)

若要以程式設計方式設定這個連結器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法