Link 图书馆在 Visual Studio,为什么有两种不同的方式?

Link library in Visual Studio, why two different ways?

我需要 link 从一个项目到另一个项目的库,看起来有两种方法,你能说出有什么区别吗?在一个设置中使用 "true" 的结果是什么和 "false" 在另一个(相同的)设置中?:

还有一个:

有什么区别,我需要将两个设置都设置为 "yes" 还是只设置一个,如果是,是哪个?

单行解释可能是第二个选项指定了第一个选项的工作原理。

  • Link Library Dependencies设置为Yes:如果设置解决方案使得当前项目有依赖在另一个生成 .lib 文件的项目中,该文件将自动 link 编辑。
  • Use Library Dependency Inputs 设置为 Yes:主要用于 Debug 构建,当 Incremental Linking 已启用。通常,如果另一个项目生成的.lib发生变化,而当前项目依赖于它,linker就不能再增量link当前项目(很难知道如何正是 .lib 改变了)。如果您将此选项设置为 Yes,则 linker 不会使用为其他项目生成的 .lib 文件,而是使用单独的 [=14] =] 图书馆员用来生成那个 .lib 的文件(就好像 .lib 不存在,并且来自其他项目的每个目标文件都单独提供给 link er ,以及来自当前项目的 .obj 文件)。这使它能够继续 link 增量。

据我所知,使用库依赖输入只有在Link库依赖Enable Incremental Linking也都设置为Yes,当前项目依赖另一个生成.lib文件的项目在开发过程中经常改变。

附加信息here and reference docs here


根据 OP 的评论更新:

据我所知,Project Reference Properties 下的 属性 条目分别为每个引用的项目指定设置(是否使用 .lib 来自该特定项目),而 Linker - General 下的那个是引用项目的默认设置。

例如,如果将 Linker - General 下的设置为 No 并添加一个新的引用项目,然后,对于该项目项目引用属性 下的设置将默认为 False。但是,之前添加的引用项目的设置保留其各自的设置。

我希望 Project Reference Properties 下的个别设置覆盖 Linker - General 的默认设置,但我还没有实际测试过这个位。