gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 00:09:57 26 4
gpt4 key购买 nike

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

但是,我遇到了一个错误。有什么方法可以在 include 中使用相对(或一般来说,绝对)快捷方式路径? Windows 中的 C++ 语句?

谢谢。

最佳答案

这实际上取决于您如何包含头文件。

如果你包含双引号,例如

#include "some_header_file.h"

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

如果您使用尖括号,例如

#include <some_header_file.h>

然后相对路径是基于系统包含路径。

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


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

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

In Project/Source you have your source files, and if one of them want to include a header file from Project/Include, then it will look something like

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

现在,如果您在 Project/Source/MoreSource 中有一个源文件想要包含相同的头文件,它将是

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

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

#include "header.h"

或者

#include <header.h>

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

关于c++ - 在 C++ 的 include 语句中使用(相对)路径作为快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40714365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com