Xbox
注意
Xbox 不會在 vcpkg 存放庫的持續整合程式中進行測試,因此在連結庫更新過程中可能會發生回歸。
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 (19041) 或更新版本包含針對 Xbox Game OS 所使用的 API 分割區建 WINAPI_FAMILY_GAMES
置所需的系統標頭。 因此,大部分的連結庫都可以針對這些三胞胎來建置,而不需要存取具有 Xbox 擴充功能的 NDA Microsoft GDK。
使用 DirectX 圖形 API 的連結庫必須使用 Xbox Game OS 所使用的 Direct3D 12.X 自定義變體來建置,這需要存取具有 Xbox 擴充功能的 NDA Microsoft GDK。 請注意,Xbox Game OS 不支援 Direct3D 11、Direct2D/DirectWrite、OpenGL、GDI 或任何舊版 Direct3D。
需要這些標頭的連結庫必須使用 ms-gdkx
「存根」埠來指出這項需求。 此埠會尋找、 GameGXDKLatest
和 GameGRDKLatest
環境變數所GameDKLatest
指向的路徑。
注意
Xbox 遊戲開發人員須負責確保他們及其發行者擁有適當且正確的授權條款,以根據其標題許可協議的條款使用任何第三方軟體元件。 請務必為您的標題中的任何開放原始碼元件使用尋求適當的法律建議。
如果在 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.LIB
或 ONECORE.LIB
。 針對 Xbox 平臺,會改用與 等衝突 kernel32
的平臺傘連結庫。請參閱 Microsoft Learn。
如需詳細資訊,請參閱這篇部落格文章。
另 請參閱 GitHub 上的 CMakeExample 範例。