我正在尝试将程序编译为64位,它与一个简单的控制台程序完美配合但是如果我使用我的directX程序它会说:错误LNK1181:无法打开输入文件'd3dx9.lib'。当我将我的directX程序编译为32位时,它可以工作,但在x64中却没有。我认为visual studio 2013有一个默认目录directx with x86但我不知道我是不对。我需要使用x64 directX libs。我怎么能链接他们?谢谢你的阅读。
答案 0 :(得分:0)
VS 2013附带Windows 8.1 SDK,从Windows 8.0 SDK开始,DirectX SDK被视为已弃用。所有版本的D3DX(D3DX9,D3DX10和D3DX11)也已弃用,仅适用于旧版DirectX SDK。您可以将旧版DirectX SDK与Windows 8.x SDK结合使用,但它需要VS 2010或更早版本的反向路径设置。请参阅MSDN和this blog post。
在您的情况下,您可能没有为x64配置正确设置项目的 VC ++目录属性:
可执行路径:
$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86
$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86
包含路径
$(IncludePath);$(DXSDK_DIR)Include
图书馆路径
$(LibraryPath);$(DXSDK_DIR)Lib\x86
$(LibraryPath);$(DXSDK_DIR)Lib\x64
注意:如果您使用v120_xp
平台工具集进行Windows XP支持,那么您实际上正在使用Windows 7.1A SDK,并且会使用相同的路径顺序VS 2010是这里显示的反向 - 即首先是DirectX SDK路径,然后是标准路径。如果您尝试定位Windows XP,请参阅this post。
这一切都说,除非你专门针对Windows XP,否则建议(a)使用Direct3D 11而不是传统的Direct3D 9,(b)完全避免使用传统的DirectX SDK,并且(c)避免使用D3DX9 / D3DX10 / D3DX11。
另见: