【问题标题】:google test - undefined rerefence when using 2 different projects谷歌测试 - 使用 2 个不同项目时的未定义参考
【发布时间】:2017-04-21 08:52:50
【问题描述】:

我正在尝试使用(编译)google test,但遇到了麻烦。

我有一个 exe 项目和另一个项目(谷歌单元测试),它们对第一个项目的某些类进行了测试。

我尝试使用以下信息: C++ unit test start guide, how to set up Google Test

我的工作区中有 2 个 c++ 项目:

  1. Exe项目名称:Tester

    • src 文件夹,其中包含 CElement.cpp、CElement.h、Main.cpp
  2. Google 测试项目 (exe) 名称:GoogleTestTester

    • gtest_src 文件夹(包含 gtest)
    • TestElement 文件夹(包含我的测试类)
    • Test1.cpp:

    测试(MyAppTtests,名称) { CElement* pElm = new CElement();

    //..
    

    }

我收到链接错误(在 GoogleTestTester 项目中):未定义对 CElement::CElement() 的引用

  • 我在 Test1.cpp 中包含了“CElement.h”
  • 在项目属性中,我包含了 TestElement 文件夹的路径(其中包含 CElement.h 文件)

我该如何解决?

【问题讨论】:

标签: c++ unit-testing googletest


【解决方案1】:

让测试项目编译 CElement.cpp 并将生成的对象链接到测试可执行文件中。

如果这没有帮助,或者如果你已经这样做了,那么也许你在CElement.h 中声明CElement::CElement(),但不要在CElement.cpp 中定义它。

如果这没有帮助:您的描述听起来像是您有两组 CElement 文件 - 一组在 Tester/src 中,而这组的副本在 GoogleTestTester/TestElement 中。可能副本出现了分歧,您编辑了一组,但没有编辑另一组。

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2014-10-03
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多