我经常发现我在使用visual studio找到我的标题时遇到问题,我想我可能终于找到了原因:看来visual studio不了解项目配置中的多个相对目录,例如:
当该目录确实存在时。
我的问题是:有人可以确认是这种情况,如果是这样,他们有没有理由这样做?这是一个错误还是故意的?
答案 0 :(得分:1)
发布作为答案,因为我不能真正将其纳入评论,尽管它有点不赞成......
调试此方法的最简单方法是从here运行Process Monitor,并添加过滤器以仅显示对文件名的访问权限。我做了一个示例c ++项目,试图加载一个不存在的标题#include "Bobby.h"
,然后将以下过滤器添加到Process Monitor:
Path Contains Bobby.h Include
然后我运行构建并得到以下输出:
CreateFile C:\Users\MyUserName\Documents\Visual Studio 2012\Projects\ConsoleApplication2\ConsoleApplication2\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Windows Kits\8.0\Include\um\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Windows Kits\8.0\Include\shared\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Windows Kits\8.0\Include\WinRT\Bobby.h NAME NOT FOUND
从这个输出中你可以很容易地看到编译器搜索头文件的位置 - 它可能足以帮助你理解为什么它找不到它。
HTH