Visual studio 2017:无法打开包含文件 'd3dx9.h' .exe 应用程序使用的静态库中没有这样的文件或目录

Visual studio 2017: Cannot open include file 'd3dx9.h' no such file or directory in a static library used by .exe application

我正在使用 Visual Studio 2017,我需要为学校项目使用 DirectX9.0。

我有一个包含 3 个项目的解决方案。一个是静态库(.lib),一个是应用程序(.exe),一个是单元测试项目:

KB01_Game.exe 像这样导入 KB01_Engine.lib:

KB01_Game 属性

KB01_Engine.lib 包含这样的 d3dx9 引用(我也尝试颠倒这些 DXSDK 引用的顺序,但没有成功):

KB01_Engine 属性

KB01_Engine 中的文件包括这样的 directx 9 headers:

> #include <d3d9.h>
> #include <d3dx9.h>
> #include <dinput.h>

引号我也试过了,没成功

 > #include "d3d9.h"
 > #include "d3dx9.h"
 > #include "dinput.h"

KB01_Engine 构建成功。我没有收到任何错误提示缺少包含文件。但是一旦我构建 KB01_Game 它就会给我这个错误,这个错误也包含在标题中,我已经努力了几个月来修复...

directx 的外部 dependencies/header 文件按预期出现在 KB01_Engine 中。当我右键单击 d3dx9.h 并单击选项 "Open document 'd3dx9.h' " 时,它实际上打开了正确的文档。没有迹象表明它找不到该文件。我强烈假设此构建错误的发生是因为我将 K​​B01 引擎用作静态库而不是常规应用程序。

如果您想查看代码,可在此处获得:https://github.com/bdeboer95/KB01-Revamped

感谢 paisanco 的评论,我通过添加以下两点修复了它:

1) 显然也需要添加库目录,我在 KB01_Engine 属性中错过了。 "Librarian > Additional Library directories"

2) 然后我在 KB01_Game 属性 "C/C++ > Additional Include Directories" 中添加了 DirectX 的包含目录: