GTEST/GMOCK与VCPKG产生链接器错误



在我的项目的cmake文件中,我将googletest作为使用git subsodules的依赖项。这很好。然后,当我还通过VCPKG添加依赖项(例如Boost)时,我会收到以下链接器错误:

LNK2001 unresolved external symbol
"class testing::internal::Mutex testing::internal::g_linked_ptr_mutex" (?g_linked_ptr_mutex@internal@testing@@3VMutex@12@A)

这是由VCPKG安装中的googletest的冲突版本引起的。某些库将导致整个VCPKG包含目录包含在您的项目中。如果您以前曾在VCPKG中安装了GTEST/GMOCK,则可以通过包括其他包装来意外地将此版本带入范围。

解决此问题的最简单方法是删除GTEST的VCPKG版本:

vcpkg remove gtest gmock

您可能必须针对不同平台目标重复此命令。另外,您还可以删除子模块并使用GTEST的VCPKG版本。

最新更新