为啥 Visual Studio 编译器无法找到某些头文件而 intellisense 可以?

Posted

技术标签:

【中文标题】为啥 Visual Studio 编译器无法找到某些头文件而 intellisense 可以?【英文标题】:Why can't the visual studio compiler find certain header files while intellisense can?为什么 Visual Studio 编译器无法找到某些头文件而 intellisense 可以? 【发布时间】:2014-07-09 19:54:32 【问题描述】:

我正在使用 Visual Studio 2010 处理一个项目,我需要从我的 PC 上的另一个位置包含一些头文件。

在项目属性中,我已将所需文件夹添加到 c++“附加包含”字段。将这些文件添加到 .h 或 .cpp 文件时,我可以使用自动完成功能来查找所有这些文件,但是当我实际使用此包中定义的某个符号时,编译器找不到该符号并且智能感知将其标记为一样糟糕。

当我右键单击其中一个符号并选择“转到声明”时,IDE 成功加载文件并将我带到定义该符号的行。

根据其他一些答案的建议,我删除了我的智能感知数据库文件,它们在加载项目时没有重新生成。

接下来我该怎么做?


关于环境的一些其他细节,我所有的文件夹都受 Rational ClearCase 保护。我试图包含的文件位于另一个“驱动器”上。我需要包含一个文件,它应该包含库的所有其余文件。我正在使用的特定库是 AVT Vimba 1.2 SDK。

【问题讨论】:

What should I do next? 我的意见,试试视觉辅助。 自动完成#include 非常简单,只需搜索文件即可。使用“符号”是完全不同的鱼,例如,#if 可以跳过定义。你能做的就是正确地记录你的问题。至少发布前几个编译错误。 在查看头文件时,#ifs 似乎没有跳过任何重要定义,但是在仔细检查此响应时,我意识到这是一个命名空间问题,而不是记录或显示在任何手册中。 【参考方案1】:

正如对该问题的评论中所述,在探索#if 指令的文件时,我发现了一些命名空间声明,这些声明似乎没有记录在此 SDK 的手册中。

【讨论】:

以上是关于为啥 Visual Studio 编译器无法找到某些头文件而 intellisense 可以?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Visual Studio 中编译 C++ 项目时出现致命错误“LNK1104:无法打开文件 'cryptlib.lib'?

为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?

为啥 g++ 和 MS Visual Studio C++ 执行以下代码的方式不同?

为啥我的visual stdio 2010连错误程序也能编译成功。。。。

英特尔 C++ 编译器安装程序未找到 Visual Studio

为啥使用 Visual Studio 而不是 GCC 编译时没有错误?