15

Google Test の Web ページには基本的にドキュメントがないので、どうすればいいですか? 私が今までやってきたこと:

  • プロジェクトページから googletest 1.6 をダウンロードし、その./configure && make内部で実行しました
  • -Igtest/include -Lgtest/libコンパイラ/リンカー フラグに追加しました
  • 私は小さなサンプルテストを書きました:

    #include "gtest/gtest.h"
    
    int main(int argc, char **args)
    {
      return 0;
    }
    
    TEST(someTest,testOne)
    {
      ASSERT_EQ(5,5);
    }
    

    これは正常にコンパイルされますが、リンカーはまったく面白がっていないようです。次のようなエラー メッセージが大量に表示されます。

    test/main.o: 関数someTest_testOne_Test::TestBody()': main.cpp:(.text+0x96): undefined reference to内 testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'

今、私は何をするのを忘れましたか?

4

4 に答える 4

2

Makefile の最良の例は、Google Test で配布されているものです。gtest_main.aGoogle の機能を使用するか独自の機能を使用するかgtest.aに基づいて、バイナリとリンクする方法を示しますmain()

于 2013-06-01T23:16:23.053 に答える
1

プロジェクトのメイクファイルに何かを追加する前に、実際に実行されているコマンドを把握するのが好きです。ここに、sample1 単体テストを手動で作成するために使用したコマンドのリストを示します。

g++ -c -I../include sample1.cc

g++ -c -I../include sample1_unittest.cc

g++ -pthread -o s1_ut sample1.o sample1_unittest.o ../lib/.libs/libgtest.a ../lib/.libs/libgtest_main.a

注: pthread 関連のリンカー エラーが大量に発生する場合は、3 番目のコマンドで -pthread を忘れています。C++ ランタイム ライブラリ関連のリンカ エラーが大量に発生する場合は、g++ ではなく gcc と入力しています。

于 2015-08-01T03:38:58.740 に答える