为啥 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连错误程序也能编译成功。。。。