如何将googletest集成到现有的VS2015解决方案中?

时间:2018-11-20 17:36:59

标签: googletest

我的第一种方法是创建一个额外的静态库,该库可以编译gtest-all.ccgmock-all.ccgmock-main.cc(在测试项目中不使用main的情况下)。 googletest项目已编译,但在测试项目中却出现此链接错误:

Error LNK2001 unresolved external symbol "public: void __cdecl testing::internal::Mutex::AssertHeld(void)" (?AssertHeld@Mutex@internal@testing@@QEAAXXZ)

哪些预处理器或项目设置可避免x64出现此链接错误?

1 个答案:

答案 0 :(得分:0)

我没有找到一种方法来调整我的googletest项目设置来避免该错误。

由于googletest具有复杂的宏来满足所有受支持的平台, 该知识应该是googletest本身的内部知识。 因此解决方案不是为例如创建自己的项目静态库。

我找到了两种解决方案:

  • 一个人可以将gtest-all.ccgmock-all.cc放入测试项目中。

  • googletest/readme.md中,人们发现可以生成 VS2015解决方案。 以下命令生成项目gmock_main,该项目创建一个没有上述链接错误的.lib

    cmake -DCMAKE_GENERATOR_PLATFORM=x64 -Dgtest_build_samples=ON <path to>googletest\googlemock