在C ++中添加静态库时出现意外行为

时间:2017-10-04 18:41:55

标签: c++ visual-studio

我在Visual Studio 2008中查看C ++中的遗留代码。添加静态库 d3dx9.h时,它会在编译时抛出以下错误(对于许多文件):

Compiling...
Menu.cpp
c:\users\jason\desktop\slot project\video_engine.h(33) : fatal error C1083: 
Cannot open include file: 'd3dx9.h': No such file or directory
MAIN.cpp
c:\users\eduardo\desktop\slot project\video_engine.h(33) : fatal error C1083: 
Cannot open include file: 'd3dx9.h': No such file or directory
GameSettings.cpp
c:\users\eduardo\desktop\slot project\video_engine.h(33) : fatal error C1083: 
Cannot open include file: 'd3dx9.h': No such file or directory
...
...
...

此lib包含在 video_engine.h

#include "d3dx9.h"
#pragma comment(lib, "platform\\DirectX\\d3d9.lib")
#pragma comment(lib, "platform\\DirectX\\d3dx9.lib")

同样,标题 video_engine.h 直接包含(#include ...),并间接包含(包括已包含此标题的文件...)多个文件。例如, Menu.cpp 不包含此标题,但它(Menu.cpp)包含 MAIN.cpp ,其中包含标题(video_engine.h)。

提前感谢任何建议!

此外,附加信息目录信息页下方以及链接器的附加信息和附加图书目录

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

当编译器找不到文件夹或无法访问文件夹或文件时,通常会发生错误No such file or directory。尝试使用Visual Studio的以管理员身份运行。此外,在其他包含目录中,您应该提供包含目录的完整路径。大多数C ++库都有这种结构:

  • LIB
  • 包括

如果我们假设我们的lib位于 C:\ 文件夹中,我们应该输入: **附加包含目录中的 C:\ Libs \ Boost \ include **。