C++ 无法使用Visual Studio打开包含文件
我最近从一个应用程序转到了VisualStudio,在Code::Blocks中,可以添加一个类,然后立即包含它。但是,每当我在Visual Studio中使用以下语句执行相同操作时:C++ 无法使用Visual Studio打开包含文件,c++,visual-studio,visual-studio-2012,include,codeblocks,C++,Visual Studio,Visual Studio 2012,Include,Codeblocks,我最近从一个应用程序转到了VisualStudio,在Code::Blocks中,可以添加一个类,然后立即包含它。但是,每当我在Visual Studio中使用以下语句执行相同操作时: #include "includedFile.h" 或 它不起作用,相反,我得到了错误: 无法打开包含文件:“includedFile.h”;没有这样的文件或目录 是否有我必须勾选的方框或设置?或者我必须手动添加每个标题作为依赖项吗 以下是相关课程的代码: 公共卫生: Public.cpp:
#include "includedFile.h"
或
它不起作用,相反,我得到了错误:
无法打开包含文件:“includedFile.h”;没有这样的文件或目录
是否有我必须勾选的方框或设置?或者我必须手动添加每个标题作为依赖项吗
以下是相关课程的代码:
公共卫生:
Public.cpp:
#include "Public.h"
Public::Public(void)
{
}
Public::~Public(void)
{
}
如何将其包括在内:
#include "Public.h"
如果这些包含文件不在项目文件夹中,则需要设置预处理器搜索这些包含文件的路径
可以在中或中设置路径。两者都可以在项目设置中找到。默认情况下,Visual Studio会在项目所在的文件夹($ProjectDir)和默认的标准库目录中搜索标题。如果需要包含未放置在项目目录中的内容,则需要将路径添加到文件夹以包括:
转到项目属性(Project->properties->Configuration properties->C/C++->General)并在字段
Additional Include Directory
中添加.h文件的路径
您还可以按照Chris Olen的建议,将路径添加到VC++目录字段。从gcc到visual studio for C编程,我也遇到了同样的问题确保include文件实际位于目录中——而不仅仅显示在VS项目树中。对于其他语言的我来说,复制到项目树中的文件夹确实会将文件移入。在VisualStudio2010中,粘贴到“头文件”中并不是将.h文件放在那里
请检查实际目录中是否存在包含文件。将其放入项目/解决方案资源管理器中的“头文件”文件夹是不够的 > P>我找到这个帖子是因为我在微软Visual C++中有同样的错误。(虽然它的原因似乎与上面发布的问题略有不同。) 我已经将我试图包含的文件放在同一个目录中,但仍然找不到 我的include如下所示:
#include
但是当我把它改为:
#include“ftdi.h”
时,它找到了它 转到您的项目属性(Project->properties->Configuration properties->C/C++->General),并在字段中的其他Include目录中添加.h文件的路径
并确保您的配置和平台是活动的。示例:配置:活动(调试)平台:活动(Win32) 如果您尝试了其他答案,但仍然找不到您的include文件,以下是一些额外的调试步骤和健全性检查:
- 确保您正在构建代码支持的平台。(如果不是,考虑删除这个平台作为目标)
- 验证文件名/路径是否正确。将源代码修改为
#包含头文件的整个绝对路径,然后查看是否现在可以找到该文件。如果没有,请将源代码中的路径复制粘贴到命令行中,以验证文件是否存在于该完整路径中,并且没有输入错误。打开头文件以确保您具有读取权限。(完成后将源代码更改回原处。)
- 如果已将路径添加到
,请尝试单击其他包含目录
的下拉组合框,然后选择其他包含目录
。这将显示路径的评估值。(如果未显示正确的计算值,则可能未设置路径中的变量。单击
查看变量。)将计算路径复制粘贴到windows资源管理器中以验证路径是否存在李> < LI>创建一个新的空C++“Windows控制台应用程序”项目。只设置一个Include目录,并#只在main.cpp中包含一个文件,然后查看是否会生成该文件宏>>
在属性-> C++ > ->一般窗口中,而不是将路径链接到“附加包含目录”中的文件。放入“.”并取消选中“从父项或项目默认值继承”
希望这有帮助 如果您的问题仍然存在,那肯定是因为您试图编译与当前设置不同的版本 例如,如果在调试x64中设置了
附加包含目录
,请确保使用相同的配置进行编译
选中此项:
Build>configurationmanager…>
在您的活动解决方案配置中可能存在类似的问题:调试x86(Win32)平台
我在这里也尝试了其他答案,但我的问题与包含路径或缺少不正确的文件无关。我有两个配置,每一个都设置为完全相同的include目录。一种配置可以解析包含,另一种无法解析
在选择我的项目并转到项目->属性之后,我通过配置下拉菜单->多个配置选择了这两种配置。。。选项比较两者,我发现C/C++->Language->Compliance模式是不同的。由于某种原因,“不正确”配置的值为Default
,将其切换为Yes
或No
可以解析路径
TL;DR:如果一个配置具有相同的包含目录,但另一个未找到文件,我建议尝试比较这些配置。它们位于项目文件夹中,我已在两个目录中添加了项目路径,唉,这不起作用,它们在项目文件夹中,我已经在这两个目录中添加了项目的路径
#include "Public.h"
Public::Public(void)
{
}
Public::~Public(void)
{
}
#include "Public.h"