Visual Studio,将项目链接在一起并进行测试

Visual Studio, link projects together and test

本文关键字:测试 在一起 链接 Studio 项目 Visual      更新时间:2023-10-16

我真的疯了。在过去的五年里,我一直在Linux中进行开发,所以我对visualstudio/microsoft世界有点陌生。

问题是:我有

  • 一个由四个类组成的项目,链接到ITK库,以实现一些功能,如IO、数据转换等。这将在静态库或.lib中编译(我们称之为Algorithm
  • 一个定义公共高级函数调用的项目,它基于上面的静态库(让我们称之为AlgorithmFacade
  • 测试Algorithm类的UnitTest项目(让我们称之为AlgorithmTest

现在,这就是我所做的

  • 我创建了一个包含所有内容的解决方案
  • 我在Algorithm中链接ITK库(即填写字段:Include、Additional Dependencies和Additional Library Dependency)
  • #包括我想在AlgorithmFacade项目中使用的类标题
  • 链接AlgorithmFacade中的ITK库的方式与我为Algorithm所做的方式相同,否则它会抱怨找不到"itkImage"之类的东西
  • 对AlorithTest做完全相同的事情
  • 运行测试
  • 获得970个所有可能类型的警告
  • 遵循可以忽略警告的城市传说
  • 得到一个类似"我找不到Algorithm.lib的代码"的错误
  • 绝望

我有一种过度设计的感觉。但如果我试图在一个项目中编写单元测试、外观和实现,VS会抱怨。

  • 有更好的解决方案吗
  • 我每次都必须从头开始包括所有的库吗
  • 我不能只做一个包含这些库、单元测试和子项目的项目,会自动继承这些库吗

PS我使用的是本机C++,而不是CLR。

PPS我正在使用Visual Studio 2012

根据您给我们的几个错误,听起来AlgorithmFacade需要在其链接器->输入部分中包含Algorithm.lib。AlgorithmTest需要在链接器->输入部分也有Algorithm.lib,可能还有AlgorithmAfacade.lib。我仍然不确定什么项目使用什么。

您可能遇到的其他问题是生成订单问题。如果您在解决方案资源管理器中右键单击您的解决方案名称并下拉到属性,您将看到一个项目依赖项部分。AlgorithmFacade取决于Algorithm。AlgorithmTest也依赖于Algorithm。

此外,请确保您所做的任何更改都应用于您的版本的发布版本和调试版本,或者您可能拥有的任何其他版本。这可能是导致大量头痛的原因。