c++头文件间歇性找不到

C++ header files intermittently not found

本文关键字:找不到 文件 c++      更新时间:2023-10-16

我在使用一些c++项目时注意到VS2012中的一些奇怪行为。如果我把下面的行放在头文件的顶部:(myclass.h)

#include <D3DX11.h>

编译器会告诉我它找不到文件(即使智能感知提示)。但是,如果我将同一行放在另一个文件(myclass.cpp)中,一切都可以正常工作。我不明白为什么在一个文件中可以找到它,而在另一个文件中却找不到?怎么回事?

EDIT/NOTE:
这并不是DirectX特有的问题。当我决定问你的时候,这正是我正在研究的东西。这在其他地方也可能发生。

在新版本的visual studio中,包含路径是在项目级别设置的。也许包含cpp的项目有正确的路径设置(参见Jesse Good在你的问题中的评论)。然而,对于您的解决方案中的另一个项目,情况可能并非如此。一旦你把include放到头文件中,包括你的头文件的所有其他项目都需要知道在哪里可以找到directX-headers文件。

小心智能感知-如果你打开一个头,它必须猜测你可能从哪个cpp中包含这个头,并且显示的信息并不总是正确的。我认为在较新的版本中,它甚至取决于其他文件被打开/项目被选中。当包含头文件时,编译器应该告诉您cpp实际上导致了什么问题。