【问题标题】:Visual Studio 2008 oddity with C++ and header files带有 C++ 和头文件的 Visual Studio 2008 奇怪之处
【发布时间】:2010-12-02 17:46:15
【问题描述】:

我在 Visual Studio 2008 解决方案文件中有一个大型 C++ 项目,一切都在正确编译和构建。到目前为止一切顺利。

但是,当我尝试直接从 IDE 的代码查看器窗口打开它们时,它无法找到任何头文件,即使这些头文件的文件夹位置已在“属性”页面的“其他包含路径”部分中列出.

例如,这个 C++ 代码片段构建成功:

#include "ctrl_word.h"
#include "SwitchOBJ.h"

CMyLocalOBJ::CMyLocalOBJ()
{
    CSwitchOBJ cSwitchObj;
    // ...
}

但是,当我右键单击任何一个头文件的名称并选择上下文菜单选项“打开文档”时,会弹出此错误对话框:

在当前源目录或构建系统路径中找不到文件“ctrl_word.h”。
    当前源路径:
    构建系统路径:
        C:\Program Files\Microsoft Visual Studio 9.0\VC\include;
        C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include;
        C:\Program Files\Microsoft SDKs\Windows\v6.0A\\Include;
        C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include

上述文件 ctrl_word.h 确实不存在于上述任何文件夹中,但构建系统通过查找其他包含目录没有问题。

我对此感到担忧的主要原因是,我配置为在 IDE 中运行的 Lint 工具出现了类似的“无法打开文件 X”行为。

你有什么想法吗?

【问题讨论】:

  • “C:\Program Files\Microsoft SDKs\Windows\v6.0A\\Include;”中的双反斜杠- 配置错误或相同?
  • 我认为这不是错字。可能有人输入了 %PROJECTDIR%\include。这可能会解析为 C:\PROJECT_FOLDER\\include。但我认为 VStudio 忽略了额外的 '\'。
  • 这就是我的假设。其他工具是否也忽略它(使用相同的共享功能访问文件夹)?一方面,您知道编译器会忽略它,而另一方面,IDE 可能不会。当你手动搜索表头时,你会在这个文件夹中找到它吗?
  • slashmais - 我仔细检查过,双反斜杠不是错字,它是上述对话框文本中出现的内容。我不确定它是否指的是 Visual Studio 中的配置缺陷。
  • 你可以参考这个stackoverflow.com/questions/12490015/…,看起来像vs bug

标签: visual-studio-2008 visual-c++ include-path


【解决方案1】:

可能是 IDE 未在其他查找目录中查找,或者您的智能感知文件已损坏。 尝试将路径包含在 VStudio 的全局包含目录中: 工具 -> 选项 -> 项目和解决方案 -> VC++ 目录 -> (添加您的文件夹) 或

删除 Intellisense 文件(存在于每个项目目录中)。重新打开项目时,它将由 VStudio 重新创建。 (推荐)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2010-10-16
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多