閱讀英文

共用方式為


Xbox

注意

Xbox 不會在 vcpkg 存放庫的持續整合程式中進行測試,因此在連結庫更新過程中可能會發生回歸。

Xbox 社群三胞胎

vcpkg 包含適用於 Microsoft GDK 計算機和 Xbox 開發的社群三胞胎。 它們會使用 MSVC 編譯程式工具組 (Visual Studio 2019 16.11 版或更新版本)。

每個三元組都有兩個變體:靜態和動態連結。

主控台 vcpkg community triplets
Xbox One x64-xbox-xboxone
x64-xbox-xboxone-static
Xbox 系列 X|S x64-xbox-scarlett
x64-xbox-scarlett-static

連結 static 三胞胎會設定為使用 MSVC 運行時間做為 DLL(亦即 VCPKG_CRT_LINKAGE dynamic),這是建議和支援的使用案例。

使用 Windows SDK 建置

Windows SDK (19041) 或更新版本包含針對 Xbox Game OS 所使用的 API 分割區建 WINAPI_FAMILY_GAMES 置所需的系統標頭。 因此,大部分的連結庫都可以針對這些三胞胎來建置,而不需要存取具有 Xbox 擴充功能的 NDA Microsoft GDK。

使用 Microsoft GDK 與 Xbox 擴充功能建置

使用 DirectX 圖形 API 的連結庫必須使用 Xbox Game OS 所使用的 Direct3D 12.X 自定義變體來建置,這需要存取具有 Xbox 擴充功能的 NDA Microsoft GDK。 請注意,Xbox Game OS 不支援 Direct3D 11、Direct2D/DirectWrite、OpenGL、GDI 或任何舊版 Direct3D。

需要這些標頭的連結庫必須使用 ms-gdkx 「存根」埠來指出這項需求。 此埠會尋找、 GameGXDKLatestGameGRDKLatest 環境變數所GameDKLatest指向的路徑。

注意

Xbox 遊戲開發人員須負責確保他們及其發行者擁有適當且正確的授權條款,以根據其標題許可協議的條款使用任何第三方軟體元件。 請務必為您的標題中的任何開放原始碼元件使用尋求適當的法律建議。

Xbox 上的 UWP

如果在 Xbox 上建置 UWP,請改用現有的x64-uwp三重組。

維護者附注

這些三胞胎的 CMake 專案是使用 CMAKE_SYSTEM_NAME 設定為 「Windows」 所建置。 若要指出以 Xbox 主控台為目標, XBOX_CONSOLE_TARGET 變數會設定為 “xboxone” 或 “scarlett”。

Xbox 三胞胎會使用 /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES/arch:AVX 來建置,或 /arch:AVX2 視目標控制台而定。

Xbox 三胞胎也會使用 /DUNICODE /D_UNICODE 來建置,因為這些都強烈建議用於現代化開發。 如需詳細資訊, 請參閱UTF-8隨處宣言

針對動態連結庫,請務必避免將 連結至 KERNEL32.LIBONECORE.LIB。 針對 Xbox 平臺,會改用與 等衝突 kernel32的平臺傘連結庫。請參閱 Microsoft Learn

進一步閱讀

如需詳細資訊,請參閱這篇部落格文章

請參閱 GitHub 上的 CMakeExample 範例。