それはウェブサイトに文書化されておらず、人々はフレームワークのセットアップに問題を抱えているようです。誰かがサンプルプロジェクトセットアップのステップバイステップの紹介を見せてもらえますか?
回答:
Arlaharenが言ったことは、リンカーのエラーを説明する部分を省略したことを除いて、基本的に正しいものでした。まず、ランタイムライブラリとしてCRTを使用せずにアプリケーションをビルドする必要があります。アプリケーションの配布が本当に簡単になるので、とにかくこれを常に行う必要があります。これを行わない場合、すべてのユーザーはVisual C ++ランタイムライブラリをインストールする必要があります。そうでないユーザーは、システムに不思議なDLLがないことについて不平を言うでしょう...リンクにかかる余分な数百キロバイトCRTを静的に使用すると、後でサポートする際の頭痛の種を大幅に減らすことができます(これについては、私を信じてください。難しい方法で学びました!)。
とにかく、これを行うには、ターゲットのプロパティ-> C / C ++->コード生成->ランタイムライブラリに移動し、リリースビルドでは「マルチスレッド」に設定し、リリースビルドでは「マルチスレッドデバッグ」に設定する必要があります。デバッグビルド。
GTESTライブラリは同じ方法で構築されているので、あなたはあなたが正しいバージョンにリンクされているようにする必要があり、それ、または他のリンカは、あなたが(ところで見誤りである、ランタイムライブラリの別のコピーでこれを引っ張ってきますMFCを使用しているかどうかに関係なく、違いはありません)。デバッグモードとリリースモードの両方としてgtestをビルドし、両方のコピーを保持する必要があります。次に、リリースビルドではgtest.lib / gtest_main.libにリンクし、デバッグビルドではgtestd.lib /gtest_maind.libにリンクします。
また、アプリケーションがgtestヘッダーファイルが保存されているディレクトリを指していることを確認する必要があります(プロパティ-> C / C ++->一般->追加のインクルードディレクトリ)が、リンカーエラーが発生した場合は、すでにこの部分を正しくすることができたということです。さもないと、最初に対処しなければならないコンパイラエラーがもっとたくさんあるでしょう。
(これらの手順により、テストフレームワークがデバッグ構成で機能するようになります。同じプロセスをリリース構成に適用するのは非常に簡単です。)
Google C ++テストフレームワークを入手する
C:\gtest
フレームワークライブラリを構築する
C:\gtest\msvc\gtest.sln
で開くテストプロジェクトを作成して構成する
C:\gtest\include
C:\gtest\msvc\gtest\Debug
またはを追加しC:\gtest\msvc\gtest-md\Debug
ますgtestd.lib
すべてが機能することを確認する
main()
関数を含むテストプロジェクトでcppを開きます。次のコードを貼り付けます。
#include "stdafx.h"
#include <iostream>
#include "gtest/gtest.h"
TEST(sample_test_case, sample_test)
{
EXPECT_EQ(1, 1);
}
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
std::getchar(); // keep console window open until Return keystroke
}
デバッグ>デバッグの開始
すべてが機能した場合は、コンソールウィンドウが表示され、単体テストの結果が表示されます。
セットアップに関するビデオチュートリアルを行いました:http: //www.youtube.com/watch?v = mzSzwQOmMRs
gtestを構築した後、これは私が行ったことです。
その後、必要に応じてTESTまたはTEST_Fを使用してテストを記述し、メイン関数と一緒にコンパイルします。
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
gtest_main.lib
デフォルトのmain
関数が含まれているため、独自の関数をmain
明示的に記述した場合は、おそらくこの関数を含めたくないでしょう。
Microsoft Visual Studioでは、ランタイムライブラリタイプが正しく構成されていないと、リンクエラーが発生します。
VS 2005(および2008)は、デフォルトとしてマルチスレッドDLLまたはマルチスレッドデバッグDLLを使用します。ただし、Google Testライブラリは、デフォルトとしてMulithreadedまたはMulithreadedデバッグランタイムを使用します。
したがって、Googleテストライブラリに適切なランタイムライブラリタイプを選択してください。([構成プロパティ]-> [コード生成]-> [ランタイムライブラリ])。
多くのエラーは、修正するのに時間がかかりました。
簡単な手順は次のとおりです。
#Googletest ZIPファイルをhttps://github.com/google/googletestからダウンロードします
#Googletest VisualStudioソリューション
Open C:\googletest\googletest\msvc\2010\gtest.sln
Change "Solution configuration"
from "Debug" to "Release"
Build Solution
creates gtest.lib
#あなたのプロジェクト:
Project Properties > Configuration Properties > VC++ Directories > Include Directories
append the following: ;C:\googletest\googletest\include
Project Properties > Configuration Properties > Linker > General > Additional Library Directories >
append the following: ;C:\googletest\googletest\msvc\2010\gtest\Win32-Release
Project Properties > Configuration Properties > C/C++ > Runtime Library
Remove the value of the above. (or match it to Googletest project)