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

異なるプラットフォーム ターゲットに対して、このコマンドを繰り返す必要がある場合があります。または、サブモジュールを削除して vcpkg バージョンの gtest を使用することもできます。

于 2019-03-17T11:31:11.863 に答える