【发布时间】:2025-12-07 16:25:02
【问题描述】:
我正在 Visual Studio 中开发一个 C++ 项目,并希望使用 Google Test 对其进行测试。
为此,我构建了一个包含三个项目的解决方案:
- 代码项目作为控制台应用程序。
- Google Test 作为静态库。
- 将项目作为控制台应用程序进行测试。
我在代码项目中写了代码,在测试项目中进行了测试。
当我尝试构建解决方案时,我遇到了一个 lnk2019 错误,当我将类移动到测试项目时该错误停止发生(但这不是我想要的)。
我了解到最好的方法是将类编写为库,这样我就可以在(代码和测试)项目中使用它们。
我应该将其作为静态库还是作为 DLL(以及为什么)?
也欢迎其他解决方案。
【问题讨论】:
-
将代码编写为静态库还是动态库并不重要。如果你只能测试其中一个,那对于需要编写另一种类型的每个人来说都是非常糟糕的!根据您对项目设计的实际需要/想要的内容选择静态或动态库。然后,弄清楚如何解决the linker error,以便您进行测试。
-
创建一个静态库,然后创建第二个项目,从第一个项目构建一个动态库。现在你两个都有了。
-
测试您打算交付的版本。如果您要交付动态库,请使用动态库进行测试。
-
如果你做一个静态库;您需要为库提供生产代码项目,前提是在构建应用程序时设置并解析所有路径。如果您制作动态库,他们将需要 *.dll 及其所在位置。通常这些类型的库的位置是在 IDE 中设置的,用于链接和构建或通过使用安装程序应用程序。
-
谢谢!目前尝试了静态库,我的示例测试似乎工作正常,不再出现 lnk2019 错误。
标签: c++ visual-studio unit-testing googletest