GooglemockとGoogletest 2010年のVisual Studioで
-
01-10-2019 - |
質問
Visual Studio 2010でGmockとGtestを成功裏に作成した人はいますか?バージョン1.5.0で試しましたが、理解できないコンピレーションエラーのみが取得されます。
解決
私はこれを見つけました スレッド Googleグループでは、VS2010の下でGMOCK-1.5.0を構築する際に見つかった問題について。スレッドに続いて、私は短いReadMeファイルを作成しました。
- gmock 1.5.0からダウンロードしてください グーグルモック.
- マシン上のライブラリフォルダーに抽出します(例:c: libs gmock-1.5.0)。これからは、このフォルダーは「gmock_root」とは異なります。
- vs2010を開き、ソリューションをロードします:gmock_root msvc gmock.sln。 VSをVS2008からVS2010に変換します。 重要! gmock_root msvcの下でソリューションファイルをダブルクリックしないでください。 これにより、変換が悪くなりました。
次の変更をソースに実行します スレッド:
Project 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です。
お役に立てれば、
ボアズ
VS2010ステップ5からのコンパイラ警告(最後の備考を参照):
警告1警告C4996: 'std :: _ copy_impl':安全でない可能性のあるパラメーターを使用して関数呼び出し - この呼び出しは、渡された値が正しいことを確認するために発信者に依存しています。この警告を無効にするには、-d_scl_secure_no_warningsを使用します。 Visual C ++の使用方法に関するドキュメントを参照してください 'Checked Iterators' CECHED 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' CECHED 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:プログラムファイル(x86) microsoft visualを終了した後に持続しない一時に初期化されますスタジオ10.0 vc include tuple 137 1
警告3警告C4373: 'テスト:: gmock_generated_function_mockers_test :: mockfoo :: takesconst':仮想関数オーバーライドのテスト:: gmock_generated_function_function_test :: foointerface :: foointerface :: takeconst '、以前のバージョンのみのバージョンのみは、compiler by by by by by by by by by by by by by by by by by by by by by by by by修飾子
警告に関する発言:
- 警告1,2は、Xutilityのコピー()が安全のために非推奨されていることです。模擬ライブラリは制作リリースの一部ではないため、これは私には問題ありません。
- 警告4は、に応じて問題ありません スレッド.
- 警告3:確かではありませんが、すべてがうまく機能しているようです。
他のヒント
Gmockソリューション自体の構築に問題がある場合、それは.Libファイルを生成できない場合、これは私のためにそれをしました(2015年vs):
https://groups.google.com/forum/#!topic/googlemock/faeahedxpaq
gmock_config.propsには、gtestdirの時代遅れの定義が含まれています。
<GTestDir>../../gtest</GTestDir>
それを置き換えます
<GTestDir>../../../googletest</GTestDir>
そして、あなたはあなたのエラーを超えているはずです。
少なくともLIBが編集されましたが、変更が示唆されているにもかかわらず、GMOCK_TESTエラーがまだありました。