Google测试 - 使用2个不同的项目时未定义的恢复

google test - undefined rerefence when using 2 different projects

本文关键字:项目 未定义 恢复 测试 使用 2个 Google      更新时间:2023-10-16

我正在尝试使用(编译(Google测试,但是有麻烦。

我有1个EXE项目和另一个项目(Google单元测试(,该项目对第一个项目的某些类别进行了测试。

我尝试使用以下信息:C 单元测试开始指南,如何设置Google Test

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

  1. EXE项目名称:Tester

    • SRC文件夹,其中包含celement.cpp,celement.h,main.cpp
  2. Google测试项目(EXE(名称:googletesttester

    • gtestrongrc文件夹(包含gtest(
    • TestElement文件夹(包含我的测试类(
    • test1.cpp:

    test(myApptests,name({ celement* pelm = new celement((;

    //..
    

    }

我会收到链接错误(在Googletesttester Project中(:对CELEMENT :: CELEMENT((

的未定义引用
  • 我在test1.cpp中包括了" celement.h"
  • 在项目属性中,我包含了通往testElement文件夹的路径(包含celement.h文件(

我该如何修复?

具有测试项目编译CElement.cpp并将结果对象链接到测试可执行文件中。

如果这无济于事,或者如果您已经这样做,则也许您在CElement.h中声明CElement::CElement(),但不要在CElement.cpp中定义它。

如果这无济于事:您的描述听起来像您有两组CElement文件 - 一个Tester/src中的一个集合,以及GoogleTestTester/TestElement中的该集合的副本。也许这些副本有所不同,您编辑了一组,但没有编辑。