0

包含头文件和项目依赖项有什么要求?

这似乎是一个非常基本的问题,但我试图找到问题的本质。(目的:设计、重构、可能的自动化)。

我见过不同类型的标题:

<c++ standard headers>
<core library headers>
<external library headers>
<local project headers>
  • 如果我查看“包含”目录,我如何识别标头是 C++ 标准标头?

[曾经有一个位置,在选项或某处,显示参考路径。我再也找不到了。还存在吗?】

  • 如果我包含一个外部库头文件(库类型项目),我通常必须执行以下所有操作:

    a) 让我的项目了解“包含”文件的位置

    b) 链接库

    c) 在解决方案中添加项目作为依赖项。

我更喜欢通过属性表引用来做 a) 和 b)。依赖库的属性表当然有依赖列表、库目录、包含目录。(我必须完成所有 3 个步骤吗?)

  • 如果我包含像 boost 这样的“核心库头文件”,我不需要在我的解决方案中包含任何 boost 项目(我确实有一个 boost 属性表,它告诉我的项目所需的文件在哪里)。
    为什么 ??????

如何判断何时必须将项目作为依赖项添加到解决方案中?

我什么时候必须将 lib 添加为依赖项?(或者,换句话说,为什么我不必添加像 boost 这样的库作为依赖项?)

这些库有什么特别之处,所以我不必包含它们吗?

创建库时我必须做什么,以使其不必包含在使用其头文件的每个解决方案中,作为依赖项?

4

1 回答 1

0

我的问题的答案——所以我不会不回答——很简单:这是一个选择问题!

我会选择在解决方案中包含其他项目,如果在某些时候可以修改它们并且对这些项目的更改可能需要重新构建它们,从而影响我正在处理的项目。

我不会包含任何不太可能改变的项目,例如第三方开源库(例如:boost)。

One of the other items in question: where are the C++ standard headers... There is an environment variable $(INCLUDE) that shows the paths to the included directories. Unfortunately, it is not set as a System Environment Variable... Not sure how it can be accessed through code.

于 2012-12-18T02:12:33.907 回答