在 C++ 中的 include 语句中使用(相对)路径作为快捷方式

2023-12-26

几天前我开始用 C++ 编码。我使用 Windows 作为编写代码的操作系统。我一直将所有“编写良好”的代码保存在一个位置。现在,我正在开发一个需要使用这些代码的项目。因此,我计划将我需要的那些文件作为头文件包含在我的项目中。但是,为了使我的项目“独立”,我创建了所需文件夹的快捷方式,并将它们保存在新项目的源文件夹中,并决定使用“中快捷方式的相对路径”include“我的项目中的声明。

但是,我收到错误。有没有办法使用相对(或者一般来说,绝对)路径来访问快捷方式includeWindows 中的 C++ 语句?

Thanks.


这真的取决于how您包含头文件。

如果包含双引号,例如

#include "some_header_file.h"

那么相对路径是从当前文件位置开始的。

如果您使用尖括号,例如

#include <some_header_file.h>

那么相对路径是基于系统包含路径的。

您始终可以将路径添加到系统包含路径。如何执行取决于您的环境和编译器。如果您使用的是 Visual Studio,请进入项目属性对话框,在“C/C++”/“常规”选项卡中,有一个名为“其他包含目录”的字段,您可以在其中添加目录。 (这是针对 VS 2015 的,其他版本可能略有不同。)


关于双引号包含。假设您的项目层次结构如下所示(在disk!):



Project
|-- Include
|-- Source
|   `-- MoreSource
`-- Other
  

In Project/Source你有你的源文件,如果其中一个想要包含来自的头文件Project/Include,那么它会看起来像

#include "../Include/header.h"

现在如果你有一个源文件Project/Source/MoreSource想要包含相同的头文件

#include "../../Include/header.h"

添加以下内容可能会很有用Project/Include目录到系统头搜索路径。您仍然可以使用双引号来包含文件,因为如果找不到它们,预处理器也会搜索系统路径,但您不需要“完整”相对路径。如果你添加Project/Include到系统头路径,你可以写

#include "header.h"

Or

#include <header.h>

但要小心,如果你有一个与实际系统头文件同名的头文件,你可能会遇到一些麻烦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中的 include 语句中使用(相对)路径作为快捷方式 的相关文章

随机推荐