我想在C ++项目中包含一个特定的头文件(MyHeader.h)。我的项目的解决方案位于文件夹:
C:\\Projects\\MyProgram
头文件位于文件夹中:
C:\\Projects\\MyProgram\\Files
我尝试了以下代码行,但它不起作用。
#include <Files\MyHeader.h>
是否有一种简单的方法来包含头文件而不在配置属性中添加“包含目录”的完整路径?
提前感谢您的帮助。 :)
答案 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
)。
View > Other Windows > Property Manager
。
如果要将更改应用于Debug和Release Configurations,请确保在下拉列表中选择了All Configurations
。否则,只需选择要应用属性的配置。
;
分隔的路径。 如果您希望单独浏览每个路径,也可以使用下拉菜单并使用对话框添加路径
Library Directories
然后,您将能够通过以下内容访问您添加的目录中包含的头文件:
#include <myheader.h>
这种方法会有所帮助,因为标题保存在哪里都不重要。标题路径不是硬编码的。
答案 2 :(得分:0)
您只需要用双引号awk -F: -f progam <data_file>
替换括号<>
,如下所示:
""
当您希望Visual Studio从项目设置中查找路径时使用括号,如果要从特定路径或相对于项目访问标题,则使用双引号。