gpt4 book ai didi

c++ - Visual Studio : how to handle project dependencies right?

转载 作者:可可西里 更新时间:2023-11-01 17:56:17 28 4
gpt4 key购买 nike

我正在编写一个程序(用 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 中?)。当然,我希望能够很好地处理依赖关系,以便始终使用每个项目的最新版本。

有什么好的方法吗?提前致谢,祝周末愉快 :)

最佳答案

是的。使用项目引用。

Here is the official answer from Microsoft .虽然该页面谈论的是 .NET,但它对于 native 项目也几乎相同。

TL;DR 版本:

项目引用的优点:

  1. 他们在加载解决方案和项目集的所有开发工作站上工作。这是因为项目文件中放置了一个项目全局唯一标识符 (GUID),它在当前解决方案的上下文中唯一标识引用的项目。
  2. 它们使 Visual Studio .NET 构建系统能够跟踪项目依赖关系并确定正确的项目构建顺序。
  3. 它们避免了引用程序集在特定计算机上丢失的可能性。
  4. 它们会自动跟踪项目配置更改。例如,当您使用调试配置构建时,任何项目引用都引用引用项目生成的调试程序集,而它们引用发布配置中的发布程序集。这意味着您可以跨项目自动从调试版本切换到发布版本,而无需重置引用。
  5. 它们使 Visual Studio .NET 能够检测和防止循环依赖。

这是关于 Project Settings Changes in VS 2010 的另一篇不错的文章它还指出引用优先于项目依赖项。其实文章里也说了VS2010的解决方案转换器自动检测Project依赖,改成Project references。

关于c++ - Visual Studio : how to handle project dependencies right?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081002/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com