本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/3696472.html
今天尝试编译DirectX10中的一个Turorials时,在已经把SDK中的LIB文件夹加入到库目录中以后,还是遇到了链接错误:
error LNK2001: 无法解析的外部符号 _D3D10CreateDeviceAndSwapChain@32 F:My FilesDocumentsVisual Studio 2013ProjectsDirectX-2014-04-27DirectX-2014-04-27Main.obj DirectX-2014-04-27
error LNK2001: 无法解析的外部符号 _D3DX10CreateEffectFromFileW@48 F:My FilesDocumentsVisual Studio 2013ProjectsDirectX-2014-04-27DirectX-2014-04-27Main.obj DirectX-2014-04-27
经过查找以后问题解决:原因是因为DX SDK的头文件中未使用#pragma comment(lib,"xxx.lib") 链接相应的库。
通过在“项目->属性->链接器->输入->附加依赖项”中添加以下lib文件就可以成功链接了。
d3d10.lib
d3dx10.lib
d3dx10d.lib
(观察导致LINK ERROR的函数名前缀,再到SDK的LIB文件夹中找找就可以确定缺失的是哪个lib文件)