Ben*_*Ben 5 c++ header file include
我想在 C++ 项目中包含特定的头文件 (MyHeader.h)。我的项目的解决方案位于文件夹中:
C:\\Projects\\MyProgram
Run Code Online (Sandbox Code Playgroud)
头文件位于文件夹中:
C:\\Projects\\MyProgram\\Files
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码行,但它不起作用。
#include <Files\MyHeader.h>
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以包含头文件,而无需在配置属性中添加“包含目录”的完整路径?
预先感谢您的任何帮助。:)
尝试这个
#include "files/myheader.h"
Run Code Online (Sandbox Code Playgroud)
files如果标头位于与当前源同一目录的文件夹中, 它将起作用。
如果您尝试包含第三方库而不是您自己的标头,我建议您将库标头保存在特定路径中(例如C:\Library\headers)。(如果有静态库,请将它们放在其他路径中,例如C:\Library\lib)。
View > Other Windows > Property Manager.

All Configurations如果您希望将更改应用到调试和发布配置,请确保在下拉列表中选择 。否则,只需选择您想要应用属性的配置。
;.如果您希望单独浏览每个路径,您还可以使用下拉菜单并使用对话框添加路径

Library Directories然后,您将能够通过以下方式访问您添加的目录中包含的头文件:
#include <myheader.h>
Run Code Online (Sandbox Code Playgroud)
这种方法会有所帮助,因为标头保存在哪里并不重要。标头路径不是硬编码的。
始终搜索源文件的当前目录,但如果您使用尖括号,则会在包含路径之后搜索它,而如果您使用引号,它将是第一个搜索的目录。
你的解决方案或makefile/project文件的目录是无关紧要的,本地路径是相对于编译单元,即cpp文件的。
如果该 cpp 文件包含标头,则该标头拥有的包含内容是相对于其自身的,而不是相对于包含该标头的 cpp 文件。(如果不是的话,管理起来就很糟糕)。
理想情况下,您也应该在路径中使用正斜杠。
您此处实际的正确设置是将解决方案目录包含在您的搜索路径中。$(SolutionDir)我认为,如果是 Visual Studio,您可以使用宏来实现此目的。
这意味着,如果其他人要构建您的解决方案,他们可以将其放在他们选择的目录中,只要下面的结构相同,它仍然可以工作。
要在 cpp 文件中使用相对路径而不进行任何包含目录设置,您可能需要类似以下内容:
#include "../Files/MyHeader.h"
Run Code Online (Sandbox Code Playgroud)