d3dx11.lib не найден?

Я использую Windows 8 / Visual Studio 2012, C ++ 11 и Direct3D 11 для разработки.

Я включаю библиотеки Direct3D, как это

#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "d3dx11.lib") // <-- error LNK1104: cannot open file 'd3dx11.lib'
#pragma comment(lib, "d3dx10.lib")

Тем не менее, компоновщик не может найти d3dx11.lib. После добавления пути, в котором находится библиотека, к «Каталогам библиотек» проекта, компоновщик все еще не может найти эти файлы. Даже после того, как я скопировал файлы lib в сам каталог проекта, он не работает.

Я установил Windows 8 SDK, а также DirectX SDK с июня 2010 года. Я что-то упустил?

8

Решение

Разбираясь с этим сам, я начал здесь:

Где находится DirectX SDK?

затем — примерно в середине этой страницы, читая о DirectXMath:

DirectXMath

Это просто включение правильных заголовочных файлов и изменение префиксов «D3DX» на «XM». Не все так просто, но это общая идея.

Ваша первая программа, вероятно, будет иметь следующие включения / использования:

#include <d3d11.h>
#include “DirectXMath.h”
#include “DirectXPackedVector.h”

using namespace DirectX;
using namespace DirectX::PackedVector;

struct mystruct
{
DirectX::XMFLOAT3 position;
DirectX::PackedVector::HALF packedValue;
};

Конечно, не считается лучшей практикой иметь «использование пространства имен», но в этом одном случае я обнаружил, что «DirectX ::» в каждой строке моей программы делал мою программу почти невозможной для чтения (для меня), поэтому я пошел с «использованием».

Удачи!

8

Другие решения

Возможно, вы указали неверный путь в свойствах, вместо «* DirectxSDK / Lib / x86» вы включили «* DirectxSDK / Lib».

1

Я тоже столкнулся с этой проблемой, используя VS2010, но я только нашел решение. Вам необходимо предоставить компоновщику файл библиотеки, с которым у вас возникли проблемы.

Проект-> Свойства-> Свойства конфигурации->Linker-> Дополнительные каталоги библиотек

Затем добавьте туда файл библиотеки, который вы хотите. Работал для меня, надеюсь, работает и для вас, и тогда вам не придется связываться с DirectXMath и находить новые учебники для него.

0
По вопросам рекламы [email protected]