Mat*_*jek 6 c++ project-reference visual-studio visual-c++ visual-studio-2012
我已经使用Visual Studio很长一段时间了,主要是为C++开发.我经常需要创建包含多个模块(项目)的解决方案 - 例如实用程序库,它由几个.dll文件组成.
当需要一个模块(A)使用另一个模块(B)时,有以下标准模式:
Linker- > Input- > Additional Dependencies- > 'B.lib').最近,我开始玩弄C#,因为我决定开发一些基于GUI的工具,我的引擎与它(这是很多更简单,比使用C++和外部库的Qt一样wxWidgets的或).我了解到,在C#中,使用'References'设置了这样的依赖:

当我发现时,我很惊讶这个选项也适用于C++项目!
实际上,在我创建示例解决方案并以这种方式设置依赖关系后,一切都运行正常,没有任何其他配置,如"链接器输入"或其他东西.
我的问题是:什么究竟该选项为C++项目呢?我对所有利润和潜在的权衡感兴趣.
我已经知道,它导致其他项目的链接输出设置为依赖项.还要别的吗?也许参考模块之间有一些运行时依赖?它如何影响生成的输出?
Han*_*ant 11
它原本只用于C++/CLI项目.并且添加对C#项目的引用完全相同的事情,您选择了使项目编译所需的.NET引用程序集.
但这让许多C++程序员感到困惑,他们认为它应该包含一些通常有用的东西.可能是因为它位于"Common Properties"标题下.很多关于它的问题.
快进到VS2010,一个未完成的版本.Microsoft项目超出其预定发货日期的少数情况之一.他们额外花了6周时间来处理错误列表.但这还不够,本来应该更容易链接依赖关系的功能实际上并未实现或禁用.
所以在VS2012,他们决定采用不同的方式,并使Add Reference对本地C/C++项目也很有用.您总是选择项目引用,它需要是静态库或DLL项目.一个生成.lib文件的人.它会自动告诉链接器链接该.lib文件.没有别的,它只是将.lib文件添加到链接器命令行.效果很好.
更新:VS2015再次更改,现在有一个References节点.右键单击它以添加对另一个项目的引用.