Подтвердить что ты не робот

D3dx11.h отсутствует?

Итак, я переустановил directx11 пару раз и даже отправился на веб-сайт Microsoft и получил пакет SDK, в котором есть все прямые файлы шкафа x. У кого-нибудь есть идея, почему я продолжаю получать эту ошибку? Я знаю, почему он говорит это, но больше ищет решение для него.

1 > c:\users\vaughn\​​documents\visual studio 2010\projects\myfirstapp\myfirstapp\main.cpp(5): фатальная ошибка C1083: Невозможно открыть файл include: 'd3dx11.h': нет такого файла или каталога

4b9b3361

Ответ 1

Это то, что вам нужно сделать в VS 2010 (это выглядит немного иначе в VS 2008 и ранее):

Перейдите к своим свойствам проекта | Свойства конфигурации | Справочники VС++. Редактируйте строку под названием Include Directories, добавив путь к файлам заголовков DirectX. Что касается SDK 2010 июня, это может быть что-то вроде:

32 бит Win: C:\Program Files\Microsoft DirectX SDK (июнь 2010)\Include

64 бит Win: C:\Program Files (x86)\Microsoft DirectX SDK (июнь 2010)\Include

Далее вы, скорее всего, получите ошибку компоновщика (отсутствующие .lib файлы). Просто перейдите к своим свойствам проекта | Свойства конфигурации | VС++, но на этот раз отредактируйте Библиотечные каталоги и добавьте один из следующих путей:

32 бит Win: C:\Program Files\Microsoft DirectX SDK (июнь 2010)\Lib\x86

64 бит Win: C:\Program Files (x86)\Microsoft DirectX SDK (июнь 2010)\Lib\x64

Если вы установили другую версию SDK или установили ее в каталог, не относящийся к умолчанию, измените указанные пути соответственно. Также убедитесь, что вы добавили d3d11.lib(и, возможно, d3dx11.lib) в Linker | Дополнительные зависимости.

Общее правило заключается в том, что в любое время, когда вы #include < > файлы, ваша среда IDE должна знать, где их найти. Каталоги VС++ - один из способов сделать это в Visual Studio. Но единственного включения заголовков (в большинстве случаев) недостаточно - вам нужно сообщить своему компоновщику, где искать предварительно скомпилированные двоичные файлы, описанные этими заголовками. Это то, что вы делаете, добавив второй путь к библиотечным каталогам.

Ответ 2

Вы должны убедиться, что получили последний DirectX SDK. Он имеет файлы заголовков. Если все, что у вас есть, это файлы в шкафу, вы получили неправильный SDK.

Ответ 3

В моем случае для DX12 мне не хватало d3dx12.h

См. эту страницу MSDN.

В случае перемещения страницы соответствующая строка выглядит как

" d3dx12.h доступен отдельно от заголовков Direct3D 12. Вы можете загрузить d3dx12.h, перейдя в любой из исходных файлов для проектов Direct3D 12 на GitHub/Microsoft/DirectX-Graphics-Samples"