因此,我已经安装了Windows 10.0.18358.1,最新的Visual Studio(17,至今尚未打扰19),更新的(内部)Windows SDK,其中应包括DX12 SDK。
但是,我没有设置DXSDK_DIR环境变量。
我可以在windows kits文件夹中看到所有DX和D3D标头和库,但是它们的分布并不真正与典型的include / bin / lib结构相对应。
有关如何纠正此问题的建议?我愿意为任何人的set
输出复制
可以正常工作。
(DirectML标记是因为这是我需要的功能,也是所有这种精神错乱的根源。)
答案 0 :(得分:1)
DXSDK_DIR
变量仅由旧版DirectX SDK和'beta DirectX 12 SDK'测试工具使用,Windows 10 SDK未使用,因为标准WindowsSDKDir
已包含必需的标头和库。
如果使用Visual Studio构建系统进行构建,则没有任何特殊设置可使用DirectX 12标头,因为它们已经在路径中了。可能您的项目默认设置为使用10.0.17763 Windows 10 SDK,因此要使用Windows 10 Insider SDK,您需要修改项目设置<WindowsTargetPlatformVersion>
元素以引用较新的10.0.18xxx版本
如果您使用的是其他手动构建系统,则应使用Windows 10 SDK并行结构的包含路径:
%WindowsSdkDir% is typically "C:\Program Files (x86)\Windows Kits\10\"
%WindowsSDKVersion% is something like "10.0.17763.0\"
%arch% is "arm", "arm64", "x64", or "x86'
INCLUDE=%WindowsSdkDir%include\%WindowsSDKVersion%shared;
%WindowsSdkDir%include\%WindowsSDKVersion%um;
%WindowsSdkDir%include\%WindowsSDKVersion%winrt;
%WindowsSdkDir%include\%WindowsSDKVersion%cppwinrt
LIB=%WindowsSdkDir%lib\%WindowsSDKVersion%um\%arch%
请参见Microsoft Docs和this blog post
Windows 10 SDK不包含实用程序,它们是共享源。对于D3DX12,您可以从here
获取最新的标头您可能还想看看DirectX Tool Kit for DX12,DirectXTex和DirectXMesh
出于历史和可用性的原因,DirectXMath 是Windows 10 SDK的一部分,但是您也可以从GitHub获取最新版本。最新的Windows 10 SDK还包括HLSL compiler/D3DCompile API,其中包括较旧的
FXC.EXE
和新的Shader Model 6DXC.EXE
。您可能还会发现directx-vs-templates上的Visual Studio模板很有用。
答案 1 :(得分:-1)
我建议还原到以前的版本,并在“反馈中心”中标记问题。另外,如果还没有安装,请在安装之前和之后运行chkdsk,以防万一。