Visual Studio 2010不会从应该依赖的依赖项目中自动循环静态库

Tho*_*ini 59 c++ build visual-studio-2010 visual-studio

  • 使用C++控制台命令行项目创建新解决方案
  • 创建一个新项目,一个C++静态库
  • 使命令行项目依赖于库
  • 确保在Configuration => Linker => General(默认情况下)中打开"Link Library Dependencies"
  • Visual Studio仍然不会链接库.

我怎样才能解决这个问题?它在Visual Studio 2008中有效.

Sea*_*ett 82

这仍然有效,但在VS 2010 中有所改变:

"使用VS2010,我们停止支持定义隐式引用的项目依赖项,我们还引入了一种在项目级别定义项目依赖项的新方法.由于项目引用和项目依赖关系是接近的概念,两者都适用于项目,因此它是有意义的让它们以一致的方式在项目文件中一起表示.正如您将在下面的片段中看到的那样,项目引用定义和项目依赖项定义之间的唯一区别在于元数据,它定义了输出程序集包含/排除到/从主项目链接命令行.虽然我们没有删除"项目依赖项"对话框,但我们建议通过"框架和参考"对话框定义新的项目依赖项.对于项目依赖项,您需要将属性页UI中的"Reference Assembly Output"属性设置为false,将项目引用设置为true.

只需右键单击控制台项目,选择"属性 - >公共属性 - >框架和参考 - >添加新参考",然后添加静态库项目; 还要检查右侧是否有"Link Library Dependencies".似乎适用于调试和发布版本.你每天学习新的东西.;)

  • @UtkarshSinha您不需要"将"静态库项目添加到解决方案中,但如果它不是解决方案的一部分,则Visual Studio无法构建它.如果您有一个不属于解决方案的预构建静态库,则整个问题不适用于您. (5认同)
  • 您需要将项目添加到当前解决方案吗?那么拥有静态库的重点是什么呢? (4认同)
  • 对于未来的探险者:这在VS2010之后已经改变了.在解决方案资源管理器中右键单击项目中的"引用"节点,然后添加依赖项目.我想如果你有一个解决方案外的项目,你将不得不通过Properties-> Linker-> Input手动添加.lib或使用共享项目. (4认同)

jal*_*alf 23

他们更改了用于在VS2010中添加C++项目依赖项的UI,但奇怪的是,没有删除旧的UI,或以任何方式表明它不再有效.

要在VS2010中创建依赖项,您需要使用"添加新引用"(可以在项目属性中找到),也可以在项目的右键单击菜单中(这里没有VS来检查)

旧的"项目依赖关系"对话框现在基本上已经破解.

  • 此外,该对话框还介绍了.Net框架,甚至是纯C++项目.微软显然还没有对多个项目的解决方案进行基本的UI测试.它真的给人的印象是Visual Studio仅适用于Hello,World大小的项目. (4认同)

YeP*_*IcK 8

对于MSVC 14(2015版),右键单击项目,然后"Add->Reference..."检查所有需要的依赖项.

是的,它在2010年和2015年版本之间发生了变化.有趣!

如果您要链接一个包含资源的项目 - 您需要.res直接在链接器输入依赖项列表(项目属性对话框)中指定该文件,因为上述配置无法获取该文件.

UPDATE

在MSVC 2017中仍然是相同的(新)行为

  • 只是让大家都知道这也适用于MSVC 2017. (4认同)