C++ 找不到d3dx11.lib?

C++ 找不到d3dx11.lib?,c++,directx,direct3d,directx-11,direct3d11,C++,Directx,Direct3d,Directx 11,Direct3d11,我正在使用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,

我正在使用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")
#pragma注释(lib,“dxgi.lib”)
#pragma注释(lib,“d3d11.lib”)

#pragma comment(lib,“d3dx11.lib”)/当我自己处理这个问题时,我从这里开始:

然后-在该页的中间,阅读关于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;
};
#包括
#包括“DirectXMath.h”
#包括“DirectXPackedVector.h”
使用名称空间DirectX;
使用名称空间DirectX::PackedVector;
结构mystruct
{
DirectX::XMFLOAT3位置;
DirectX::PackedVector::半packedValue;
};
当然,使用“使用名称空间”并不被认为是最佳实践,但在这个例子中,我发现在我的程序的每一行上都有“DirectX::”使我的程序几乎不可能(对我来说)读取,所以我选择了“使用”


祝你好运

可能您在属性中包含了错误路径,而不是“*DirectxSDK/Lib/x86”,您包含了“*DirectxSDK/Lib”。

我在使用VS2010时也遇到了这个问题,但我刚刚找到了解决方案。您需要为链接器提供您遇到问题的库文件

项目->属性->配置属性->链接器->其他库目录


然后将所需的库文件添加到其中。适用于我,希望也适用于您,这样您就不必干扰DirectXMath并为其查找新教程。

您确定“D3DX11“要复制的文件中是否包含lib文件?我想您可以将其链接进来,但D3DX实用程序库不再受支持——事实上,您根本不需要下载2010 SDK。D3DX已被DirectXMath库(XMMath)替换。转换有点痛苦,但不是太糟糕。我不知道。我是D3D11的新手。我将了解如何在没有这个库的情况下实现它。有时D3DX是一种方式(我不使用DirectXMath,因为它使CUDA的互操作变得复杂)。此外,DirectXMath的某些接口对于移植(例如初始化)也很差。你找到解决办法了吗?(坚持使用Windows SDK并整洁地访问D3DX的一种方式?)如果你想让Windows 7工作,你必须链接D3DX。它说DirectXMath适用于Windows 8或更高版本。有什么东西也可以用于Windows Vsta/7吗?另外,我还没有找到任何不使用d3dx的教程。你能给我指出一个不使用这个去润滑库的吗?我在Win7中使用过它,没有任何问题。我能找到的唯一教程是MS的(),这足以让我继续学习。如果您真的不想使用XM,当然您应该能够链接到D3DX11.lib和DX10支持中,等等(就像在OP中一样)。但由于您刚刚起步,最好使用当前的库。这看起来是一个很好的起点。谢谢所以DirectXMath取代了对d3dx10和11的需求?它看起来像一个注释。