[解決済み] Google C++ テストフレームワーク (gtest) を Visual Studio 2005 でセットアップする方法
質問
Web サイトにドキュメントがなく、フレームワークのセットアップに問題があるようです。どなたか、サンプルプロジェクトのセットアップのためのステップバイステップの紹介を示すことができますか?
どのように解決するのですか?
Arlaharen が言ったことは基本的に正しいのですが、リンカーエラーについて説明している部分が抜けています。 まず第一に、アプリケーションをビルドする必要があります。 を使わずに ランタイムライブラリとしてCRTを使用しないアプリケーションを構築する必要があります。 これは、アプリケーションの配布を本当に単純化するため、常に行う必要があります。 これを行わない場合、すべてのユーザーが Visual C++ ランタイム ライブラリをインストールする必要があり、そうでないユーザーは自分のシステム上で謎の DLL が見つからないと不満を漏らすことになります...CRT を静的にリンクするのにかかる数百キロバイトの追加コストで、後のサポートにおける多くの頭痛を避けることができます(これについては私を信頼してください。)
とにかく、これを行うには、ターゲットのプロパティ -> C/C++ -> Code Generation -> Runtime Library で、Release ビルドでは "Multi-Threaded" として、Debug ビルドでは "Multi-Threaded Debug" に設定する必要があります。
gtest ライブラリも同じ方法でビルドされるため、正しいバージョンの それ さもないと、リンカーはランタイムライブラリの別のコピーを取り込み、これがあなたが見たエラーです(MFC を使用しているかどうかに関係なく、これは重要ではありません)。 gtestを以下のようにビルドする必要があります。 デバッグとリリース モードとしてビルドし、両方のコピーを取っておく必要があります。 そして、Release ビルドでは gtest.lib/gtest_main.lib に対してリンクし、Debug ビルドでは gtestd.lib/gtest_maind.lib に対してリンクします。
また、アプリケーションで、gtest のヘッダーファイルが格納されているディレクトリを指定していることを確認する必要があります (properties -> C/C++ -> General -> Additional Include Directories で確認できます)。ただし、リンカエラーになったということは、この部分をすでに正しく処理できていると考えられますし、さもなければ、最初に対処すべき多くのコンパイルエラーがあることになります。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] Visual Studioで、既存のディレクトリツリーをプロジェクトに追加するにはどうすればよいですか?
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] Visual Studioでディレクトリ構造全体を「既存の項目を追加」するにはどうすればよいですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】Visual Studioでコードを自動フォーマットする方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】識別子 "string "は未定義?
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] GTestとCMakeを使った作業の始め方