在Visual Studio中链接库,为什么有两种不同的方式?

时间:2015-01-30 10:19:35

标签: visual-studio-2013 linker option

我需要将图书馆从一个项目链接到另一个项目,它看起来有两种方式,你能说出有什么不同,以及有什么结果?#34; true"在一个设置和"假"在另一个(相同的)设置?:

enter image description here

另一个: enter image description here

有什么区别,我是否需要将设置设置为"是"或只是一个,如果是的话?

1 个答案:

答案 0 :(得分:5)

一行解释可能是第二个选项指定第一个选项如何工作。

  • 链接库依赖项设置为:如果设置了解决方案,以便当前项目依赖于生成.lib文件的另一个项目,然后该文件将自动链接。
  • 使用库依赖项输入设置为:当启用增量链接时,主要在调试版本中很有用。通常,如果另一个项目生成的.lib发生更改,并且当前项目依赖于它,则链接器无法再以递增方式链接当前项目(它很难知道{{1改变了)。如果将此选项设置为,则链接器不会使用为其他项目生成的.lib文件,而是使用所使用的各个.lib文件由图书管理员生成.obj(好像.lib不存在,并且来自另一个项目的每个目标文件都与.lib文件一起单独提供给链接器来自当前的项目)。这使它能够以递增方式继续链接。

据我所知,使用库依赖项输入只有在链接库依赖项启用增量链接都设置时才有意义到,当前项目依赖于另一个项目,该项目在开发过程中生成经常更改的.obj文件。

其他信息here和参考文档here


根据OP的评论更新:

据我所知,项目参考属性下的属性条目为每个引用的项目单独指定设置(是否使用该特定项目的.lib),而 Linker - General 下的那个是引用项目的默认设置。

例如,如果您将链接器 - 常规下的一个设置为并添加一个新引用的项目,那么该项目的 项目参考属性下的设置将默认为 False 。但是,之前添加的引用项目的设置会保留其各自的设置。

我希望项目参考属性下的个别设置覆盖链接器 - 常规的默认设置,但我还没有真正测试过这个位。