Share via


編譯器和連結器選項 (C++/CX)

環境變數、C++/CX 編譯器選項和連結器選項支援建置Windows 執行階段的應用程式。

Library path (程式庫路徑)

%LIBPATH% 環境變數指定 .winmd 檔案的預設搜尋路徑。

編譯器選項

選項 描述
/ZW

/ZW:nostdlib
啟用Windows 執行階段語言延伸模組。

nostdlib 參數可防止編譯器使用標準、預先定義的搜尋路徑來尋找組件和 .winmd 檔案。

/ZW 編譯器選項會隱含指定下列編譯器選項:

- /FI vccorlib.h,強制包含 vccorlib.h 標頭檔,此檔案定義編譯器所需的許多類型。
- /FU Windows.winmd,會強制包含作業系統所提供的 Windows.winmd 中繼資料檔案,並在Windows 執行階段中定義許多類型。
- /FU Platform.winmd,強制包含 Platform.winmd 中繼資料檔,此檔案由編譯器提供,且定義 Platform 命名空間系列中的大部分類型。
/AIdir 將以 dir 參數指定的目錄加入搜尋路徑中,供編譯器用來尋找組件和 .winmd 檔案。
/FU檔案 強制包含指定的模組或 .winmd 檔案。 也就是說,您不需要在原始程式碼中指定 #using檔案 。 編譯器會自動強制包含其本身的 Windows 中繼資料檔 Platform.winmd。
/D "WINAPI_FAMILY=2" 建立定義,以使用與 Windows 執行階段 相容的 Win32 SDK 子集。

連結器選項

選項 描述
/APPCONTAINER[:NO] 將可執行檔標記為可在 appcontainer 中執行 (僅限)。
/WINMD[:{NO|ONLY}] 發出 .winmd 檔案和相關聯的二進位檔。 這個選項必須傳遞至連結器,才能發出 .winmd。

NO- 不發出 .winmd 檔案,但發出二進位檔案。

ONLY- 發出 .winmd 檔案,但不發出二進位檔案。
/WINMDFILE:檔案名稱 要發出的 .winmd 檔案名稱,而不是預設 .winmd 檔案名稱。 如果命令列上指定多個檔案名稱,則會使用最後一個名稱。
/WINMDDELAYSIGN[:NO] 部分簽署 .winmd 檔案,並將公開金鑰放在二進位檔中。

NO- (預設值) 不簽署 .winmd 檔案。

除非同時指定 /WINMDKEYFILE 或 /WINMDKEYCONTAINER,否則 /WINMDDELAYSIGN 沒有作用。
/WINMDKEYCONTAINER:name 指定用於簽署組件的金鑰容器。 name 參數對應至用於簽署中繼資料檔的金鑰容器。
/WINMDKEYFILE:filename 指定用於簽署組件的金鑰或金鑰組。 檔案名稱 參數對應至用於簽署中繼資料檔的金鑰。

備註

當您使用 /ZW時,編譯器會自動連結至 C 執行階段 (CRT) 的 DLL 版本。 不允許連結至靜態程式庫版本,而且任何在通用 Windows 平臺應用程式中不允許使用 CRT 函式,都會導致編譯時期錯誤。

另請參閱

建置應用程式和程式庫