Xbox
Hinweis
Xbox wird im Rahmen des kontinuierlichen Integrationsprozesses des vcpkg-Repositorys nicht getestet, sodass Regressionen als Teil von Bibliotheksupdates auftreten können.
vcpkg enthält Community-Triplets für microsoft GDK PC- und Xbox-Entwicklung . Sie verwenden das MSVC-Compilertoolset (Visual Studio 2019, Version 16.11 oder höher).
Es gibt zwei Varianten für jedes Triplet: statische und dynamische Verknüpfung.
Konsole | vcpkg Community-Triplets |
---|---|
Xbox One | x64-xbox-xboxone |
x64-xbox-xboxone-static | |
Xbox Series X|S | x64-xbox-scarlett |
x64-xbox-scarlett-static |
Die static
Verlinkungs-Triplets werden so festgelegt, dass die MSVC-Runtime als DLL (d. h. VCPKG_CRT_LINKAGE dynamic
als empfohlenes und unterstütztes Verwendungsszenario) verwendet wird.
Das Windows SDK (19041) oder höher enthält die Systemheader, die zum Erstellen für die WINAPI_FAMILY_GAMES
API-Partition erforderlich sind, die vom Xbox Game OS verwendet wird. Daher können die meisten Bibliotheken mit diesen Triplets erstellt werden, ohne Zugriff auf die NDA Microsoft GDK mit Xbox-Erweiterungen zu haben.
Bibliotheken, die DirectX-Grafik-APIs verwenden, müssen mit einer benutzerdefinierten Variante von Direct3D 12.X erstellt werden, die vom Xbox Game OS verwendet wird, und dies erfordert Zugriff auf die NDA Microsoft GDK mit Xbox-Erweiterungen. Beachten Sie, dass das Xbox Game OS Direct3D 11, Direct2D/DirectWrite, OpenGL, GDI oder eine ältere Version von Direct3D nicht unterstützt.
Bibliotheken, die diese Header erfordern, müssen den ms-gdkx
"Stub"-Port verwenden, um diese Anforderung anzugeben. Dieser Port sucht nach Pfaden, auf die durch GameDKLatest
, GameGXDKLatest
und GameGRDKLatest
Umgebungsvariablen verwiesen wird.
Hinweis
Xbox-Spieleentwickler sind dafür verantwortlich, sicherzustellen, dass sie und ihre Herausgeber über geeignete und korrekte Lizenzbedingungen für die Verwendung von Drittanbieter-Softwarekomponenten gemäß den Bedingungen ihres Lizenzvertrags verfügen. Achten Sie darauf, für jede Verwendung von Open-Source-Komponenten in Ihrem Titel geeignete Rechtsberatung zu suchen.
Wenn Sie für UWP auf Xbox erstellen, verwenden Sie stattdessen das vorhandene x64-uwp
Triplet.
CMake-Projekte für diese Triplets werden mithilfe CMAKE_SYSTEM_NAME
von "Windows" erstellt. Um anzugeben, dass die Xbox-Konsole gezielt ist, wird die XBOX_CONSOLE_TARGET
Variable auf "xboxone
" oder "scarlett
" festgelegt.
Xbox-Triplets erstellen mit /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES
und entweder /arch:AVX
oder /arch:AVX2
abhängig von der Zielkonsole.
Die Xbox-Triplets bauen ebenfalls auf /DUNICODE /D_UNICODE
, da beide für die moderne Entwicklung dringend empfohlen werden. Weitere Informationen finden Sie im UTF-8 Everywhere-Manifest.
Achten Sie bei dynamischen Bibliotheken darauf, explict-Verknüpfungen mit KERNEL32.LIB
oder ONECORE.LIB
zu vermeiden. Für die Xbox-Plattform wird stattdessen eine Plattformschirmbibliothek verwendet, die konfliktet mit kernel32
usw. Siehe Microsoft Learn.
Weitere Informationen finden Sie in diesem Blogbeitrag.
Siehe auch das CMakeExample-Beispiel auf GitHub.
Feedback zu vcpkg
vcpkg ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: