无法用Visual Studio打开包含文件

use*_*108 21 c++ codeblocks include visual-studio visual-studio-2012

我最近从Code :: Blocks到Visual Studio,在Code :: Blocks中,我可以添加一个类,然后立即包含它.但是,每当我在Visual Studio中使用以下语句执行相同操作时:

#include "includedFile.h"
Run Code Online (Sandbox Code Playgroud)

要么

#include "include/includedFile.h"
Run Code Online (Sandbox Code Playgroud)

它不起作用,而是我收到错误:

无法打开包含文件:'includedFile.h'; 没有相应的文件和目录.

是否有一些箱子或设置我必须打勾?或者我是否必须手动将每个标头添加为依赖项?

以下是相关类的代码:

Public.h:

    #pragma once
    class Public
    {
        public:
            static const int SCREEN_WIDTH=1000;
            static const int SCREEN_HEIGHT=1250;
            Public(void);
            ~Public(void);
    };
Run Code Online (Sandbox Code Playgroud)

Public.cpp:

    #include "Public.h"


    Public::Public(void)
    {
    }


    Public::~Public(void)
    {
    }
Run Code Online (Sandbox Code Playgroud)

它是如何被包括在内的:

    #include "Public.h"
Run Code Online (Sandbox Code Playgroud)

Yab*_*rgo 32

我有同样的问题从例如gcc到Visual Studio进行C编程.确保您的包含文件实际位于目录中 - 不仅仅显示在VS项目树中.对于我在其他语言中复制到项目树中的文件夹确实会移动文件.使用Visual Studio 2010,粘贴到"头文件"并不是将.h文件放在那里.

请检查您的实际目录中是否存在包含文件.将它放入项目/解决方案资源管理器中的"头文件"文件夹是不够的.


小智 25

转到项目属性(项目 - >属性 - >配置属性 - > C/C++ - >常规),然后在附加包含目录字段中添加.h文件的路径.

并确保您的配置和平台是活动的.示例:配置:活动(调试)平台:活动(Win32).

  • 主动配置让我着迷!我正在更改“发布”的设置并为“调试”进行编译(尽管我已启用“调试”,但 VS 默认为“发布”)。您可能希望为包含目录选择“所有配置”。 (2认同)

Chr*_*sen 17

如果预处理器不在项目文件夹中,则需要设置预处理器的路径以搜索这些包含文件.

您可以在VC++目录其他包含目录中设置路径.两者都在项目设置中找到.

  • 它们位于项目文件夹中,我已在两个目录中添加了项目的路径,唉它不起作用 (8认同)

tom*_*nes 15

默认情况下,Visual Studio将在项目所在的文件夹($ ProjectDir)和默认标准库目录中搜索标头.如果需要包含未放置在项目目录中的内容,则需要添加要包含的文件夹的路径:

转到项目属性(项目 - >属性 - >配置属性 - > C/C++ - >常规),然后在该字段中Additional Include Directories添加.h文件的路径.

您也可以按照Chris Olen的建议添加VC++目录字段的路径.

  • 对不起,但是不可能.这是一件非常简单的事情,如果您输入正确的路径,它应该打开.如果它们在项目文件夹中,请不要添加项目的路径 - 你只需要#include"file.h"`.你可以做的最后一件事是右击项目 - >添加 - >新项目 - >头文件然后包含它,文件将自动在你的项目目录中创建.如果它不起作用,Visual Studio就会出现问题. (3认同)

Joe*_*Joe 6

我发现这篇文章是因为我在Microsoft Visual C++中遇到了同样的错误.(虽然看起来它的原因与上面提到的问题有点不同.)

我把文件,我试图包含在同一目录中,但仍然无法找到.

我的包含看起来像这样: #include <ftdi.h>

但当我改变它时: #include "ftdi.h" 它找到了它.

  • 在我看来,`<>`用于系统文件,然后引号用于项目中包含的文件. (3认同)