【问题标题】:Use c++ classes from console application class in other project visual studio在其他项目 Visual Studio 中使用控制台应用程序类中的 c++ 类
【发布时间】:2021-02-08 17:46:37
【问题描述】:

我正在尝试在 Visual Studio 中为我的控制台应用程序在同一解决方案中创建一个 gtest 项目。当我从“新项目”向导创建这个项目时,我可以选择我想要测试的项目。所以我选择我的控制台应用程序。在 Visual Studio 创建了 gtest 项目后,我可以在引用下看到我的控制台项目存在。当我尝试示例测试用例时,一切正常。但是,当我开始从控制台应用程序中包含我的类时,我收到一个链接器错误,指出我的类上的一个符号未解析(LNK_2019)。我知道这通常意味着找到了方法的声明(.h 文件),但找不到定义(编译的 .cpp 文件)。通常,如果我收到此错误,我会将 .lib 文件添加到链接器设置中,但似乎控制台应用程序不会输出 lib 文件。有什么方法可以在我的测试项目的控制台应用程序中使用我的类?

【问题讨论】:

    标签: c++ visual-studio linker googletest


    【解决方案1】:

    您应该设计您的应用程序以进行测试。

    将应用程序拆分为两个项目。核心逻辑应该在(静态)库中实现。实际的命令行应用程序只是围绕已在库中实现的逻辑的一个小外壳。

    现在您可以创建与库链接的测试。请注意,这是一种通用模式,并不限于 gtest 框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-20
      • 2011-10-06
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多