gpt4 book ai didi

c++ - 如何处理 Visual Studio 中的括号形式包含指令?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:58 26 4
gpt4 key购买 nike

能否请您回答我以下有关 Visual Studio 包含行为的问题来帮助我?

我创建了一个新的 C++ 项目,它引用了一个已经存在的项目,其源文件不应更改。我最终得到以下文件结构:

-MyProject
+---MyProject.sln
+---MyProject.vcxproj
+---MyProject.cpp
+---CommonHeader.h

-ExistingProject
+---project
+---+---ExistingProject.vcxproj
+---source
+---+---ExistingProject1.h
+---+---ExistingProject2.h
+---+---ExistingProject1.c
+---+---ExistingProject2.c

一开始,我什至无法编译 ExistingProject。在 ExistingProject1.c 中,存在以下包含语句:

#include <ExistingProject1.h> 

来自 here我了解到,在括号包含的情况下,Visual Studio 不会在与包含 include 语句的文件相同的目录中查找 header 。所以我的第一个问题是:

1) Is it true, that i have to add the "../source/"-Directory to the Include Directories of the ExistingProject.vcxproj, although the Header files are already added to the visual Studio project?

要使用 ExistingProject 的结构和功能,我必须将 ExistingProject2.h 包含到我的 MyProject.cpp 中。但是在ExistingProject2.h中,同样的include语句

#include <ExistingProject1.h>

存在。这就引出了我的第二个问题:

2) Is it true, that i have to add the "../ExistingProject/source/-Directory to the Include Directories of MyProject.vcxproj project as well?

现在真正奇怪的问题来了。如果设置了某个定义,必须在 MyProject 中设置,则 ExistingProject2.h 还包括一个外部头文件,通过

#include <CommonHeader.h>

必须由依赖项目定义。这就引出了我的最后一个问题:

3) Is it true, that i have only the following two options to compile with this external header file?

  1. I have to copy my CommonHeader.h into the "ExistingProject\source\"-Directory during checkout.
  2. I have to add the "."-Directory to the Include Directories of MyProject.vcxproj project and i have to add the "../../MyProject/"-Directory to the Include Directories of ExistingProject.vcxproj.

第二个选项毫无意义。第一个真的是我处理这种包含外部头文件的括号形式的唯一选择吗?

并且:至少 vcxproj 文件旁边的位置不应该位于该项目中使用的头文件的包含目录中吗?

抱歉拼写错误。我是一个非常糟糕的解释者。祝大家周末愉快。

最佳答案

当你输入 #include <header.h> - Visual Studio 将在项目设置中的所有指定包含路径中搜索它,这包括 Windows SDK 和标准库所在的默认路径。请参阅此屏幕截图,例如:nclude

如果你输入 C:\path1\path2要包含目录,您最终可能会使用 #include <..\path1.h>

如果是#include "quotes.h" - Visual Studio 将仅在您存储文件的项目目录中搜索文件。如果您将其他文件放在项目的某些子文件夹中 - 您始终需要指定相对路径(如 #include "subfolder\header.h" )。

如果您需要进一步说明,请告诉我。

关于c++ - 如何处理 Visual Studio 中的括号形式包含指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801409/

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