Visual Studio 2010 で gmock と gtest のビルドに成功した人はいますか? バージョン 1.5.0 で試してみましたが、意味不明なコンパイル エラーしか出ません。
2 に答える
VS2010 で gmock-1.5.0 をビルドするときに見つかった問題について、Google グループでこのスレッドを見つけました。スレッドに従って、短い readme ファイルを作成しました。
- Google Mockから gmock 1.5.0 をダウンロードします。
- マシンのライブラリ フォルダに展開します (例: C:\Libs\gmock-1.5.0)。今後、このフォルダは「GMOCK_ROOT」として参照されます。
- VS2010 を開き、ソリューションをロードします: GMOCK_ROOT\msvc\gmock.sln。VS で VS2008 から VS2010 に変換します。 重要!GMOCK_ROOT\msvc の下にあるソリューション ファイルをダブルクリックしないでください。これにより、不適切な変換が行われました。
スレッドに従って、ソースに次の変更を加えます。
プロジェクト gmock --> プライベート ヘッダー ファイル --> gmock-internal-utils.h:
- 行 201、202: 「ヘルパー」関数をコメントアウトします。
char Helper(To);
static char (&Helper(...))[2]; // NOLINT
- 行 210-219:
#ifdef..#endif
セクション全体を次のように置き換えます。
static const bool value = std::is_convertible<From, To>::value;
プロジェクト gmock_test --> ソース ファイル --> gmock-printers_test.cc、848 行目: NULL 引数を に明示的にキャストします
void*
。そうしないと、VS は自動的に null int と見なします。結果の行は次のようになります。t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, static_cast<void*>(NULL), "10");
- ソリューションをビルドします。これにより 4 つの警告が表示されますが、以下で説明するように (おそらく) OK です。
お役に立てれば、
ボアズ
ステップ 5 からの VS2010 コンパイラの警告 (最後の備考を参照):
警告 1 警告 C4996: 'std::_Copy_impl': 安全でない可能性のあるパラメーターを使用した関数呼び出し - この呼び出しは、渡された値が正しいことを確認するために呼び出し元に依存しています。この警告を無効にするには、-D_SCL_SECURE_NO_WARNINGS を使用します。Visual C++ 'Checked Iterators' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility 2227 1 の使用方法に関するドキュメントを参照してください。
警告 2 警告 C4996: 'std::_Copy_impl': 安全でない可能性のあるパラメーターを使用した関数呼び出し - この呼び出しは、渡された値が正しいことを確認するために呼び出し元に依存しています。この警告を無効にするには、-D_SCL_SECURE_NO_WARNINGS を使用します。Visual C++ 'Checked Iterators' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility 2227 1 の使用方法に関するドキュメントを参照してください。
警告 4 警告 C4413: 'std::tr1::_Cons_node<_Car,_Cdr>::_Value': 参照メンバーは、コンストラクターが C:\Program Files (x86)\Microsoft Visual を終了した後も保持されない一時に初期化されますStudio 10.0\VC\include\tuple 137 1
警告 3 警告 C4373: 'testing::gmock_generated_function_mockers_test::MockFoo::TakesConst': virtual function overrides 'testing::gmock_generated_function_mockers_test::FooInterface::TakesConst', 以前のバージョンのコンパイラは、パラメーターが const/volatile のみ異なる場合はオーバーライドしませんでした修飾子 C:\Libs\gmock-1.5.0\test\gmock-generated-function-mockers_test.cc 133 1
警告に関する備考:
- 警告 1、2 は、xutility の Copy() が安全性のために非推奨になっていることに関するものです。モック ライブラリは製品リリースの一部ではないため、これで問題ありません。
- 警告 4 は、スレッドに従って OK です。
- 警告 3: 確かではありませんが、すべてうまく機能しているようです。