GTest / GMock выдает ошибку компоновщика с vcpkg - PullRequest
0 голосов
/ 17 марта 2019

В файле cmake для моего проекта я включаю googletest как зависимость, используя подмодули git.Это отлично работает.Когда я затем также добавляю зависимости через 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)

1 Ответ

0 голосов
/ 17 марта 2019

Это вызвано конфликтующей версией GoogleTest в вашей установке vcpkg.Некоторые библиотеки будут вызывать включение всего каталога vcpkg include в ваш проект.Если вы ранее установили gtest / gmock в vcpkg, эту версию можно случайно включить в область действия, добавив другой пакет.

Самый простой способ решить эту проблему - удалить версию gtest из vcpkg:

vcpkg remove gtest gmock

Возможно, вам придется повторить эту команду для разных целей платформы.Кроме того, вы также можете удалить подмодуль и использовать версию gtest для vcpkg.

...