12

私の必要性は単純です。msysでMinGWを使用して、Windowsでgoogletestをコンパイルして使用する必要があります。誰かがこれを行った経験がありますか?

回答ありがとうございます。

4

6 に答える 6

16

少し時間がかかりましたが、私はそれを理解しました。これは、同じ問題に直面しているすべての人のためのガイドです。

Windows で GoogleTest をコンパイルできるようにするには、次の手順に従います。

  1. MSYSがインストールされたMinGWがあると仮定します。

  2. 公式サイトhttp://www.cmake.org/から CMake をダウンロードしてインストールします。Win32 インストーラー バージョンを使用します。インストールプロセスが完了したら、実行可能ファイルを「xxx/CMake/bin」から「xxx/MinWG/bin」にコピーします。

  3. http://www.python.org/から Python をダウンロードしてインストールします。繰り返しますが、Windows インストーラーはうまく機能します。インストール プロセスが完了したら、「python.exe」フォームの python フォルダを「xxx/MinWG/bin」にコピーします。

  4. http://code.google.com/p/googletest/から最新の安定した GoogleTest をダウンロードし、フォルダに展開します。

  5. MSYS ターミナルを実行し、次のコマンドを実行します。

    cd xxx/gtest-x.x.x
    cmake -G "MSYS Makefiles"
    make
    
  6. pthread からコンパイル エラーが発生した場合は、次の手順に従ってください。

  7. インクルード フォルダー「xxx/gtest-xxx/include」を MinGW gcc インクルードにコピーします。ライブラリ ファイル「xxx/gtest-xxx/*.a」を MinGW gcc lib にコピーします。

  8. テストをコンパイルするとき、"-lgtest" パラメータを gcc に追加します。

EDIT コメンテーターは正しいです。実行可能ファイルの対処はうまくいきましたが、一般的には良い習慣ではありません。代わりにシンボリック リンクを使用してみてください。

于 2011-03-12T12:37:03.400 に答える
1

パスにバイナリがある限り、バイナリをコピーする必要はありません。Python と CMake をインストールします。msys (MinGW コンソール) でテストします。

which cmake
which python

パスが表示されている場合は、バイナリがあります。そうでない場合は、環境変数> PATHにパスを追加するか、msys内で更新します(必要に応じてインストールパスを更新します)

export PATH=$PATH:/c/Program Files (x86)/CMake/bin/cmake.exe:/c/Python27/python.exe

次に、提案どおりにビルドできます。

cd xxx/gtest-x.x.x
cmake -G "MSYS Makefiles"
make

すべてが機能するかどうかをテストします。

cd make
make
./sample1_unittest.exe
于 2015-02-27T13:50:44.947 に答える
1

別の方法として、通常の MSYS/Mingw make を使用して googletest をビルドすることもできます。

だからここに私の別の方法があります:

  1. MSys/MingW が Windows にインストールされ、PATH 環境がそれに設定されていることを確認してください。

  2. コマンド ウィンドウを開きます。ここでも明示的に PATH を設定できます。

  3. 解凍した googletest ディレクトリへの CD

  4. sh (MSys の一部) を使用して configure を呼び出します。sh configure

  5. Call make->libgtest.aをビルドする必要があります。googletest-directorylib/.libsサブディレクトリに配置されます

  6. をシステムに統合する方法については、googletest の README を参照libgtest.aしてください。コンパイル方法については、 googletest wikiのgoogletest プライマーも参照してください。または、gcc のライブラリ パスを指定し、テスト プロジェクトの実行可能ファイルとのリンクを-L<googleTestDir>/lib/.libs追加します。-lgtest

  7. マクロを使用ASSERT_DEATHしてテスト済みコードのアサートをチェックする場合 (googletest ではなく、lib またはアプリケーションでアサートすることを意味します)、SetErrorMode- example mainを呼び出します。

    #include <windows.h>
    #include "gtest/gtest.h"
    
    int main (int argc, char** argv)
    {
        // this prevents annoying error message boxes popping up
        // when assert is called in your program code
        SetErrorMode(SEM_NOGPFAULTERRORBOX);
        ::testing::InitGoogleTest(&argc, argv);
        return RUN_ALL_TESTS();
    }
    
于 2014-06-17T08:53:46.970 に答える