visual-studio-code - 我无法在 VSCode 中为 D3D12 配置包含路径
问题描述
[编辑] 这是关于 vsCode 项目而不是 Visual Studio 项目(此处澄清,因为它不明显)
是否有人设法构建了一个包含 d3d12.h 并成功链接到 D3D 库的应用程序。我知道它位于 C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\um 但是当我将它添加到 c_cpp_properties.json 的包含路径中时,我收到此错误:
无法打开源文件“kernelspecs.h”(“d3d12.h”的依赖项)
这是有道理的。
此页面提到了 DXSDK_DIR 环境变量,但它没有在我的计算机上定义,尽管我安装了“Windows 10 SDK 软件”和“VS community 2017”。 https://docs.microsoft.com/en-us/windows/desktop/direct3d12/directx-12-programming-environment-set-up
我的印象是现在用 VSCode 构建一个 D3D12 应用程序是不可能的。我错了吗 ?
[编辑]好的,所以我以这种方式添加了所有四个包含路径(我使用的是 g++):
"command": "${env:Cygwin64BinPath}/g++.exe",
"args":
[
"-g",
"-o", "MassiveSteering",
"*.cpp",
"-D_DEBUG",
"-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/shared",
"-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/um",
"-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/winrt",
"-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/cppwinrt"
],
但我收到以下错误:
执行任务:C:\cygwin64\bin/g++.exe -g -o MassiveSteering *.cpp -D_DEBUG '-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/shared' '-IC :/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/um''-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/winrt''-IC:/程序文件 (x86)/Windows Kits/10/Include/10.0.17134.0/cppwinrt' <
在 C:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/shared/minwindef.h:182:0 包含的文件中,
来自 C:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/shared/windef.h:24,
来自 C:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/um/windows.h:171,
来自 main.cpp:7: C:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/um/winnt.h:154:2: error: #error "No Target Architecture"
我唯一的 cpp 中唯一的东西是:
#define UNICODE // Necessary to use long chars in windows
#define _UNICODE
#define WIN32_LEAN_AND_MEAN
// include the basic windows header file
#include <windows.h>
解决方案
标准 Visual Studio 集成具有以下四种INCLUDE
路径:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\cppwinrt
如果您只是使用um
,这就是它失败的原因。
因为LIB
你需要:
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17134.0\ucrt\<arch>
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17134.0\um\<arch>
DXSDK_DIR
环境变量是对 DirectX 12 SDK Beta 版本的过时引用,它不应该再存在了,因为它在 Beta 之外不存在。DirectX 12 标头和库是 Windows 10 SDK 的一部分。
实用程序标D3DX12.H
头不在任何 SDK 中,您只需从GitHub获取。
您可能还想查看DirectX 12 的 DirectX 工具包。
推荐阅读
- c# - 有没有办法在不重建 ml.net 推荐任务中的模型的情况下将新用户添加到推荐系统?
- html - Rails:CSS未在检查器中显示且未应用
- tensorflow - TensorBoard 2.0.0 不更新火车标量
- markdown - R markdown 文本和代码中的双空格问题
- javascript - Magento 2 中未定义 jQuery
- javascript - 如何将几个 HTML 文件加载为“文档”,然后使用 Javascript 操作它们?
- python - python字典参数到带有烧瓶模板的JS字典
- angular - Angular 5:如何在不同的组件中使用一个表单组?
- packet - 一旦满足条件,我想在连续嗅探时停止数据包捕获
- angular - Angular7在运行下一个函数之前接收API数据