0

我的第一种方法是创建一个额外的静态库来编译gtest-all.ccgmock-all.cc并且(在测试项目gmock-main.cc中不这样做)。maingoogletest 项目编译完成,但在测试项目中出现这个链接错误:

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

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

4

1 回答 1

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

于 2018-11-20T17:36:59.277 回答