如何在特定文件夹中包含头文件? (C ++)

时间:2014-10-01 13:35:27

标签: c++ file header include

我想在C ++项目中包含一个特定的头文件(MyHeader.h)。我的项目的解决方案位于文件夹:

C:\\Projects\\MyProgram

头文件位于文件夹中:

C:\\Projects\\MyProgram\\Files

我尝试了以下代码行,但它不起作用。

#include <Files\MyHeader.h>

是否有一种简单的方法来包含头文件而不在配置属性中添加“包含目录”的完整路径?

提前感谢您的帮助。 :)

3 个答案:

答案 0 :(得分:3)

始终搜索源文件的当前目录,但是如果使用斜角括号,则会在包含路径后搜索,而如果使用引号,则它将是搜索到的第一个目录。

您的解决方案或makefile /项目文件的目录无关紧要,本地路径相对于编译单元,即cpp文件。

如果该cpp文件包含标题,那么标题自己的包含是相对于它自己的,而不是包含它的cpp文件。 (如果不是这样的话,那就太好了。)

理想情况下,您也应该在路径中使用正斜杠。

您在此处的实际正确设置是在搜索路径中包含解决方案目录。如果它是Visual Studio,您可以使用宏,我认为$(SolutionDir)

这意味着如果其他人打算构建您的解决方案,他们可以将它放在他们选择的目录中,只要下面的结构相同,它仍然可以工作。

要在cpp文件中使用相对路径而不使用任何包含目录设置,您可能需要以下内容:

#include "../Files/MyHeader.h"

答案 1 :(得分:1)

试试这个

#include "files/myheader.h"

如果标题位于与当前源相同的目录中的files文件夹中,它将起作用。


如果您尝试包含第三方库而不是自己的标题,我建议您将库标题保存在特定路径中(例如C:\Library\headers)。 (如果有静态库将它们放在其他路径中,如C:\Library\lib)。

  1. 在Visual Studio C ++项目中,转到View > Other Windows > Property Manager
  2. Property Manager Window

    1. 双击项目名称。您将看到如下对话框:
    2. Property Page Editor

      如果要将更改应用于Debug和Release Configurations,请确保在下拉列表中选择了All Configurations。否则,只需选择要应用属性的配置。

      1. 转到左侧的VC ++目录,然后选择右侧的“包含目录”,并在文本框中输入由;分隔的路径。
      2. 如果您希望单独浏览每个路径,也可以使用下拉菜单并使用对话框添加路径

        Edit1 Edit2

        1. 以相同的方式将库路径添加到Library Directories
        2. 使用Property Manager Pane工具箱上的Save按钮保存更改。

        3. 然后,您将能够通过以下内容访问您添加的目录中包含的头文件:

          #include <myheader.h>
          

          这种方法会有所帮助,因为标题保存在哪里都不重要。标题路径不是硬编码的。


答案 2 :(得分:0)

您只需要用双引号awk -F: -f progam <data_file>替换括号<>,如下所示:

""

当您希望Visual Studio从项目设置中查找路径时使用括号,如果要从特定路径或相对于项目访问标题,则使用双引号。