我最近从Code::Blocks到Visual Studio,在Code :: Blocks中,我可以添加一个类,然后立即包含它。但是,每当我在Visual Studio中使用以下语句执行相同操作时:
#include "includedFile.h"
要么
#include "include/includedFile.h"
它不起作用,而是我收到错误:
无法打开包含文件:'includedFile.h';没有相应的文件和目录。
是否有一些箱子或设置我必须打勾?或者我是否必须手动将每个标头添加为依赖项?
以下是相关类的代码:
#pragma once
class Public
{
public:
static const int SCREEN_WIDTH=1000;
static const int SCREEN_HEIGHT=1250;
Public(void);
~Public(void);
};
Public.cpp:
#include "Public.h"
Public::Public(void)
{
}
Public::~Public(void)
{
}
它是如何被包括在内的:
#include "Public.h"
我有同样的问题从例如gcc到Visual Studio进行C编程。确保您的包含文件实际位于目录中 - 不仅仅显示在VS项目树中。对于我在其他语言中复制到项目树中的文件夹确实会移动文件。使用Visual Studio 2010,粘贴到“头文件”并不是将.h文件放在那里。
请检查您的实际目录中是否存在包含文件。将它放入项目/解决方案资源管理器中的“头文件”文件夹是不够的。
转到项目属性(项目 - >属性 - >配置属性 - > C / C ++ - >常规),然后在附加包含目录字段中添加.h文件的路径。
并确保您的配置和平台是活动的。示例:配置:活动(调试)平台:活动(Win32)。
如果预处理器不在项目文件夹中,则需要设置预处理器的路径以搜索这些包含文件。
您可以在VC++ Directories或Additional Include Directories中设置路径。两者都在项目设置中找到。
默认情况下,Visual Studio将在项目所在的文件夹($ ProjectDir)和默认标准库目录中搜索标头。如果需要包含未放置在项目目录中的内容,则需要添加要包含的文件夹的路径:
转到项目属性(项目 - >属性 - >配置属性 - > C / C ++ - >常规),然后在字段Additional Include Directories
中添加.h文件的路径。
您也可以按照Chris Olen的建议添加VC ++目录字段的路径。
我发现这篇文章是因为我在Microsoft Visual C ++中遇到了同样的错误。 (虽然看起来它的原因与上面提到的问题有点不同。)
我把文件,我试图包含在同一目录中,但仍然无法找到。
我的包括这样:#include <ftdi.h>
但当我改变它:#include "ftdi.h"
然后它发现它。
如果您已尝试其他答案并且仍无法找到您的包含文件,则可以执行以下一些其他调试步骤和完整性检查:
#include
而不是头文件的整个绝对路径,并查看是否可以立即找到该文件。如果没有,请将源代码中的路径复制粘贴到命令行,以验证该文件是否存在于该完整路径中而没有拼写错误。打开头文件以确保您具有读取权限。 (完成后更改源代码。)Additional Include Directories
的路径,请尝试单击Additional Include Directories
的下拉组合框,然后选择<Edit...>
。这将显示路径的evaluated values
。 (如果它没有显示正确的评估值,则可能未设置路径中的变量。单击Macros>>
查看变量。)将评估的路径复制粘贴到Windows资源管理器中以验证路径是否存在。这是一个奇怪的解决方案(说实话,我不完全理解),这是我对这个问题的回答。
在属性 - > C ++ - >常规窗口中,而不是在“其他包含目录”中链接文件的路径。把“。”并取消选中“来自父项或项目默认值”。
希望这可以帮助。
如果您的问题仍然存在,那肯定是因为您尝试从当前设置编译不同的版本。
例如,如果在Debug x64中设置Additional Include Directories
,请确保使用相同的配置进行编译。
检查一下:Build > Configuration Manager... >
在您的活动解决方案配置中可能存在类似问题:Debug x86 (Win32) platform
。