0

在我的项目的 cmake 文件中,我使用 git 子模块将 googletest 作为依赖项包含在内。这工作正常。然后,当我还通过 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)

4

1 回答 1

0

这是由 vcpkg 安装中的 GoogleTest 版本冲突引起的。某些库会导致整个 vcpkg 包含目录包含在您的项目中。如果您之前在 vcpkg 中安装了 gtest/gmock,则此版本可能会因包含不同的软件包而意外进入范围。

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

vcpkg remove gtest gmock

您可能必须针对不同的平台目标重复此命令。或者,您也可以删除子模块并使用 gtest 的 vcpkg 版本。

于 2019-03-17T11:31:11.863 回答