如何将谷歌测试集成到现有的VS2015解决方案中



我的第一种方法是创建一个额外的静态库,用于编译gtest-all.ccgmock-all.ccgmock-main.cc(在测试项目中不使用main(。谷歌测试项目编译了,但我在测试项目中得到了这个链接错误:

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

对于x64,哪些预处理器或项目设置可以避免此链接错误?

我没有找到一种方法来调整我的谷歌测试项目设置以避免这个错误。

由于谷歌测试有复杂的宏来满足所有支持的平台,这些知识应该是谷歌测试本身的内部知识。因此,解决方案不是为静态库创建自己的项目。

我找到了两个解决方案:

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

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

    cmake -DCMAKE_GENERATOR_PLATFORM=x64 -Dgtest_build_samples=ON <path to>googletestgooglemock

相关内容

  • 没有找到相关文章

最新更新