如何设置MS Visual Studio 2005项目依赖项以进行高效编译(c ++)?

时间:2009-05-06 12:40:37

标签: c++ visual-c++ ide visual-studio-2005 dependencies

如何设置MS Visual Studio 2005项目依赖项,以便在更高级别的项目中进行更改不会强制重新编译它所依赖的所有其他项目。

如果我有5个dll项目,它们以各种方式相关......在“项目” - >“依赖项”下,我已经确定了下一个项目,但只有一个级别。 当我对较高项目做一个小改动时,选择'Build' - >'Build myLib',下面的项目也会被重新编译......如果我指定所有依赖项,那么所有依赖项目也会重新编译...这不是没错,是吗?

如果我删除显式依赖项,则较低的项目将不会重建,即使它应该是(正如我所期望的那样)。

如果我有多个依赖级别(A取决于B取决于C等)怎么办?

3 个答案:

答案 0 :(得分:1)

  

如果我有多个依赖级别(A取决于B取决于C等)怎么办?

从下拉列表中选择项目A,将B添加为依赖项。同样,对于B,选择C作为依赖。

答案 1 :(得分:0)

  

如何设置MS Visual Studio 2005   制作的项目依赖关系   更高级别项目的变化   不强制重新编译所有   它依赖的其他项目。

我认为你的意思是:

  

如何设置MS Visual Studio 2005   制作的项目依赖关系   更高级别项目的变化   不强制重新编译所有   可能依赖的其他项目   间接地,在它上面?

我认为你使用的方式比“更高”和“更低”的方式与我的方式相反 - 对于一对项目,我认为“较低”的项目是依赖于另一个项目的项目。 。可能是你的“心理图”只是相对于我的垂直翻转,这很好;或者可能是你误解了Project Dependencies框所要求的内容,但事实并非如此。它要求上面下拉列表中的命名项目直接依赖的项目列表,即在构建命名项目之前必须是最新的项目(可能需要重建)。

所以:请你澄清你想要“更高”和“更低”的意思。

当你要求构建一些项目X时,VC ++应该(并且我确定如此)做的是检查X所依赖的所有项目(直接或间接)是否是最新的,并构建任何项目不。当这个建筑发生时,每个项目总是在它所依赖的任何项目之后直接或间接构建。请注意,项目可能需要重建,即使它们本身没有改变 - 例如如果X依赖于Y而Y取决于Z,则更改Z并请求构建X需要先构建Z,然后Y(未更改),然后是X.如果有甚至“更低“(在我看来)依赖于X的项目,当你请求构建X时,它们不会被构建。

答案 2 :(得分:-1)

我的项目依赖项无论如何都只设置了级别:

  • 项目A取决于图书馆B
  • 项目A取决于图书馆C

但是,库B也使用库C,但我没有将该集作为依赖项。这似乎工作正常。

您要更改标头文件吗?当然 - 如果您更改标题,那么无论您是否设置了项目依赖项,都必须重建依赖于该标题的任何项目。