/ / d3dx11.lib nicht gefunden? - c ++, directx, direct3d, directx-11, direct3d11

d3dx11.lib nicht gefunden? - C ++, DirectX, Direct3D, DirectX-11, Direct3D11

Ich verwende Windows 8 / Visual Studio 2012, C ++ 11 und Direct3D 11 für die Entwicklung.

Ich füge die Direct3D-Bibliotheken so hinzu

#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")

Der Linker scheint jedoch nicht das zu finden d3dx11.lib. Nach dem Hinzufügen des Pfads, in dem sich die Bibliothek befindetDer Linker befindet sich in den "Bibliotheksverzeichnissen" des Projekts und kann diese Dateien immer noch nicht finden. Selbst nachdem ich die lib-Dateien in das Projektverzeichnis selbst kopiert habe, funktioniert sie nicht.

Ich habe das Windows 8 SDK sowie das DirectX SDK ab Juni 2010 installiert. Fehlt mir etwas?

Antworten:

8 für die Antwort № 1

Als ich mich damit beschäftigte, begann ich hier:

Wo ist das DirectX-SDK?

dann - ungefähr in der Mitte dieser Seite, über DirectXMath:

DirectXMath

Es beinhaltet so ziemlich nur die richtigen Header-Dateien und das Ändern der "D3DX" -Präfixe in "XM". Nicht ganz so einfach, aber das ist die allgemeine Idee.

Ihr erstes Programm wird wahrscheinlich folgende Einschlüsse / Verwendungen haben:

#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;
};

Natürlich gilt es nicht als "Best Practice"habe "using namespace", aber in diesem einen Fall habe ich festgestellt, dass "DirectX ::" in jeder Zeile meines Programms mein Programm (für mich) fast unmöglich zu lesen macht - also ging ich mit "using".

Viel Glück!


1 für die Antwort № 2

Wahrscheinlich haben Sie in den Eigenschaften einen falschen Pfad angegeben. Statt "* DirectxSDK / Lib / x86" haben Sie "" * DirectxSDK / Lib "angegeben.


0 für die Antwort № 3

Ich habe dieses Problem auch mit VS2010 ausgeführt, aber ich habe gerade die Lösung gefunden. Sie müssen dem Linker die Bibliotheksdatei bereitstellen, mit der Sie Probleme haben.

Projekt-> Eigenschaften-> Konfigurationseigenschaften->Linker-> Zusätzliche Bibliotheksverzeichnisse

Fügen Sie dann die gewünschte Bibliotheksdatei hinzu. Für mich gearbeitet, hoffentlich auch für Sie, und dann müssen Sie sich nicht mit DirectXMath herumschlagen und neue Tutorials dafür finden.