我正在编写一个程序(用 C++ 编写),它需要多个 VS 项目,我想将其放入同一个 VS 解决方案中。我正在使用 Visual Studio 2010。
这只是想要的架构:我正在为我的项目使用第 3 方库 (A),我拥有使用源代码编译的所有标头和 .lib 文件。
通过这个库,我正在编写自己的类和函数。这就是我的项目(B)。
然后我想为用户开发两个界面:命令行界面(C1)和GUI界面(C2),它们使用(B)中定义的类和函数。
A <-- B <-- C1
<-- C2
我是 Visual Studio 的新手,我不知道如何正确处理这些依赖项。
我应该使用项目依赖项(在解决方案属性中)还是引用(在项目属性中)?事实上,我不确定依赖项和引用到底在做什么。
我应该将 B 编译到某个 .lib 库中,还是做其他事情?如果我这样做,则必须仅将 B.lib 链接到我的 C1 和 C2 项目,或者我还应该链接 A.lib (换句话说,A.lib 的内容是否以某种方式包含在 B.lib 中?)。
当然,我希望能够很好地处理依赖关系,以便始终使用每个项目的最新版本。
有没有好的方法呢?
提前致谢,祝周末愉快:)
是的。使用项目参考。
这是微软官方的回答 http://msdn.microsoft.com/en-us/library/ee817675.aspx。虽然该页面讨论的是 .NET,但本机项目也几乎相同。
TL;DR 版本:
项目参考的优点:
- 它们在加载解决方案和项目集的所有开发工作站上工作。这是因为项目文件中放置了一个项目全局唯一标识符 (GUID),它在当前解决方案的上下文中唯一标识引用的项目。
- 它们使 Visual Studio .NET 构建系统能够跟踪项目依赖性并确定正确的项目构建顺序。
- 它们避免了引用的程序集在特定计算机上丢失的可能性。
- 它们自动跟踪项目配置更改。例如,当您使用调试配置进行构建时,任何项目引用都引用由引用的项目生成的调试程序集,而它们引用发布配置中的发布程序集。这意味着您可以跨项目自动从调试版本切换到发布版本,而无需重置引用。
- 它们使 Visual Studio .NET 能够检测并防止循环依赖。
这是另一篇不错的文章VS 2010 中的项目设置更改 http://blogs.msdn.com/b/vcblog/archive/2010/02/16/project-settings-changes-with-vs2010.aspx它还指出引用优先于项目依赖项。事实上,文章还说VS2010解决方案转换器会自动检测Project依赖关系并将其更改为Project引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)