VS2017: error Link 2019 (DirectX11 配置运行时出现无法解析的外部符号_D3DCompileFromFile@36)

 

 

无法解析的外部符号问题,可能的原因

  1. 出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.
  2. 只写了类声明,但还没有写实现类,造成调用时无法解析
  3. 声明和定义没有统一,造成链接不一致,无法解析
  4. 没有在项目属性页的链接器的命令行选项加入相应的类包。
  5. 没有在c++包含目录和库目录加入相应的类包路径
  6. 在测试工程中被测文件目录可能需要包含被测类的cpp定义文件
  7. ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库
  8. error LNK 2019 :一般是动态库没有包进来。 
  9. error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW
    工程属性,C/C++,代码生成,运行时库选择MDd,
  10. 能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。

    原文链接:https://blog.csdn.net/enotswn/article/details/5934938。

 

博主环境为Win10+VS2017,运行基于Direct 11的程序时出现LNK2019错误如下:

error LNK2019:未解析的外部符号_D3DCompileFromFile @ 36在函数中引用 _D3DX11CompileEffectFromFile...

参考可能原因8,可添加部分配置文件解决该问题:

一、   进入 项目->属性->配置属性->链接器->常规->附加库目录 如下图所示:

VS2017: error Link 2019 (DirectX11 配置运行时出现无法解析的外部符号_D3DCompileFromFile@36)_第1张图片

添加

$(WindowsSDK_LibraryPath_x86)

二、添加必要的lib库

进入 项目->属性->配置属性->链接器->输入->附加依赖项 ,如下图:

VS2017: error Link 2019 (DirectX11 配置运行时出现无法解析的外部符号_D3DCompileFromFile@36)_第2张图片

Direct 11需要添加的lib库如下:

d3d11.lib
d3dx11d.lib
D3DCompiler.lib
dxerr.lib
dxgi.lib
dxguid.lib
DInput8.lib
DirectXTK.lib
笔者自认才疏学浅,仅略知皮毛,文中错谬之处在所难免,若蒙诸君不吝告知,将不胜感激

你可能感兴趣的:(VS2017: error Link 2019 (DirectX11 配置运行时出现无法解析的外部符号_D3DCompileFromFile@36))