【问题标题】:d3dx11.h missing?d3dx11.h 不见了?
【发布时间】:2011-10-27 00:58:37
【问题描述】:

所以我重新安装了几次directx11,甚至访问了微软网站并获得了包含所有direct x cabinet文件的SDK包。任何人都知道为什么我一直收到这个错误?我知道它为什么这么说,但更多的是在寻找解决方案。

1>c:\users\vaughn\documents\visual studio 2010\projects\myfirstapp\myfirstapp\main.cpp(5):致命错误 C1083: 无法打开包含文件:'d3dx11.h':没有这样的文件或目录

【问题讨论】:

  • 您是否将必要的文件夹添加到您的包含目录中?

标签: c++ directx-11


【解决方案1】:

这就是您在 VS 2010 中需要做的事情(在 VS 2008 和更早版本中看起来有点不同):

转到您项目的属性 |配置属性 | VC++ 目录。通过添加 DirectX 头文件的路径来编辑名为 Include Directories 的行。至于 2010 年 6 月的 SDK,它可能类似于:

32 位 Win:C:\Program Files\Microsoft DirectX SDK(2010 年 6 月)\Include

64 位 Win:C:\Program Files (x86)\Microsoft DirectX SDK(2010 年 6 月)\Include

接下来您很可能会遇到链接器错误(缺少 .lib 文件)。只需转到您项目的属性 |配置属性 |再次使用 VC++ 目录,但这次编辑库目录并添加到以下路径之一:

32 位 Win:C:\Program Files\Microsoft DirectX SDK(2010 年 6 月)\Lib\x86

64 位 Win:C:\Program Files (x86)\Microsoft DirectX SDK(2010 年 6 月)\Lib\x64

如果您安装了其他版本的 SDK 或将其安装到非默认目录,请相应更改给定路径。还要确保将 d3d11.lib(也可能是 d3dx11.lib)添加到 Linker |其他依赖项。

一般规则是,无论何时您#include 文件,您的 IDE 都需要知道在哪里可以找到它们。 VC++ 目录是在 Visual Studio 中执行此操作的一种方式。但是仅包含头文件(在大多数情况下)是不够的 - 您需要告诉链接器在哪里查找这些头文件描述的预编译二进制文件。您可以通过将第二个路径添加到库目录来执行此操作。

【讨论】:

  • 好的,我要去试试这个。我以为我这样做是因为这是作业说明告诉我要做的,但我会仔细检查所有内容。
  • 感谢您的帮助,原来我缺少 VC++ 目录和 Direct X11 的链接器库。
  • 使用环境变量 %DXSDK_DIR%/Include 怎么样?
【解决方案2】:

您必须确保获得最新的DirectX SDK。它有头文件。如果你得到的只是cabinet文件,那么你得到了错误的SDK。

【讨论】:

  • 我下载了,还是提示找不到?如果我注释掉请求访问文件的行,它可以工作,但它也会让我也注释掉 d3dx10.h 文件,并且加载正常。
  • 您能否在系统中搜索 d3dx*.h 以查看正确的头文件安装到何处?
  • 重装4次也没弹出。
【解决方案3】:

就我而言,对于 DX12,我缺少 d3dx12.h

参见this MSDN 页面。

如果页面移动,相关行似乎是

d3dx12.h 与 Direct3D 12 标头分开提供。您可以在 GitHub/Microsoft/DirectX-Graphics-Samples 处导航到 Direct3D 12 项目的任何源文件以下载 d3dx12.h”

【讨论】:

  • DirectX SDK 是旧版,不推荐使用 D3DX9、D3DX10 和 D3DX11。有关替换列表,请参阅Living without D3DX。 D3DX12 不是 Windows SDK 或 DirectX SDK 的一部分。它旨在仅复制到您的项目中,它在 MIT 许可下在 GitHub 上提供。它还包含在各种 DirectX 12 VS 模板中,包括 these
  • 注意 blob 链接现在是 here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多