私の必要性は単純です。msysでMinGWを使用して、Windowsでgoogletestをコンパイルして使用する必要があります。誰かがこれを行った経験がありますか?
回答ありがとうございます。
私の必要性は単純です。msysでMinGWを使用して、Windowsでgoogletestをコンパイルして使用する必要があります。誰かがこれを行った経験がありますか?
回答ありがとうございます。
少し時間がかかりましたが、私はそれを理解しました。これは、同じ問題に直面しているすべての人のためのガイドです。
Windows で GoogleTest をコンパイルできるようにするには、次の手順に従います。
MSYSがインストールされたMinGWがあると仮定します。
公式サイトhttp://www.cmake.org/から CMake をダウンロードしてインストールします。Win32 インストーラー バージョンを使用します。インストールプロセスが完了したら、実行可能ファイルを「xxx/CMake/bin」から「xxx/MinWG/bin」にコピーします。
http://www.python.org/から Python をダウンロードしてインストールします。繰り返しますが、Windows インストーラーはうまく機能します。インストール プロセスが完了したら、「python.exe」フォームの python フォルダを「xxx/MinWG/bin」にコピーします。
http://code.google.com/p/googletest/から最新の安定した GoogleTest をダウンロードし、フォルダに展開します。
MSYS ターミナルを実行し、次のコマンドを実行します。
cd xxx/gtest-x.x.x
cmake -G "MSYS Makefiles"
make
pthread からコンパイル エラーが発生した場合は、次の手順に従ってください。
インクルード フォルダー「xxx/gtest-xxx/include」を MinGW gcc インクルードにコピーします。ライブラリ ファイル「xxx/gtest-xxx/*.a」を MinGW gcc lib にコピーします。
テストをコンパイルするとき、"-lgtest" パラメータを gcc に追加します。
EDIT コメンテーターは正しいです。実行可能ファイルの対処はうまくいきましたが、一般的には良い習慣ではありません。代わりにシンボリック リンクを使用してみてください。
パスにバイナリがある限り、バイナリをコピーする必要はありません。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
別の方法として、通常の MSYS/Mingw make を使用して googletest をビルドすることもできます。
だからここに私の別の方法があります:
MSys/MingW が Windows にインストールされ、PATH 環境がそれに設定されていることを確認してください。
コマンド ウィンドウを開きます。ここでも明示的に PATH を設定できます。
解凍した googletest ディレクトリへの CD
sh (MSys の一部) を使用して configure を呼び出します。sh configure
Call make
->libgtest.a
をビルドする必要があります。googletest-directorylib/.libs
サブディレクトリに配置されます
をシステムに統合する方法については、googletest の README を参照libgtest.a
してください。コンパイル方法については、 googletest wikiのgoogletest プライマーも参照してください。または、gcc のライブラリ パスを指定し、テスト プロジェクトの実行可能ファイルとのリンクを-L<googleTestDir>/lib/.libs
追加します。-lgtest
マクロを使用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();
}