Неразрешенная внешняя ошибка символа с Google Mock и Vcpkg

Я создал простой тестовый проект C ++ с одним классом насмешки:

#include <gtest/gtest.h>
#include <gmock/gmock.h>

class TestMock
{
public:
MOCK_CONST_METHOD0(Method1, void());
};

TEST(Test, Test1)
{
TestMock mock;
}

int main(int argc, char * argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

Я использую Visual Studio 2017 (15.3.3). Это отладочный проект x86 со всеми настройками по умолчанию.

Я добавил gtest.lib и gmock.lib в компоновщик. Когда я компилирую и делаю ссылку, я получаю эту ошибку:

1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------
1>ConsoleApplication1.obj : error LNK2001: unresolved external symbol "class testing::internal::Mutex testing::internal::g_linked_ptr_mutex" (?g_linked_ptr_mutex@internal@testing@@3VMutex@12@A)
1>ConsoleApplication1.obj : error LNK2001: unresolved external symbol "class testing::internal::Mutex testing::internal::g_gmock_mutex" (?g_gmock_mutex@internal@testing@@3VMutex@12@A)
1>d:\Develop\CPP\ConsoleApplication1\Debug\ConsoleApplication1.exe : fatal error LNK1120: 2 unresolved externals
1>Done building project "ConsoleApplication1.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Я скачал пакет gtest с помощью Vcpkg. Он скомпилирован как 32-битная DLL. Gtest работает нормально, но когда я создаю экземпляр фиктивного класса, я получаю ошибку компоновки. Я также проверил с проектом CMake, и я получаю ту же ошибку.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]