1

autotoolsを使用したすべての Google テストを含むテスト実行可能ファイルの生成に失敗しています。

私たちの開発プロジェクトは非常に大きく、いくつかのモジュールが含まれています。したがって、私が望むのは、各モジュールでテスト lib/object ファイルを作成し、これらをまとめて 1 つのテスト exec ファイルを作成することです (実際には を介し​​てmake test) 。

この Makefile.am はコンパイルされますが、テストは実行されません: (テストは自動登録されず、0 テストで実行されます)

noinst_LTLIBRARIES = libtest2.la
libtest2_la_SOURCES = test2.cpp
libtest2_la_LIBADD = lib/libgtest.la
libtest2_la_CXXFLAGS = -I./include
TESTS = testall
check_PROGRAMS = testall
testall_SOURCES = test2.cpp
testall_CXXFLAGS = -I./include
testall_LDADD = libtest2.la lib/libgtest_main.la

もちろん、これは機能します(ただし、私が望むものではありません):

testall_SOURCES = test2.cpp
testall_CXXFLAGS = -I./include
testall_LDADD = lib/libgtest_main.la 

両者の本当の違いは何ですか?これらのテストを自分のプロジェクトで機能させるにはどうすればよいですか?

4

1 に答える 1

1

GoogleTestのPrimerwikiページには、ライブラリでのテストに関する特別なセクションが含まれています。Visual C ++ユーザー向けの言葉ですが、実際にはGCCの静的ライブラリにも適用されます。つまり、リンカがライブラリを破棄しないようにするには、テストを使用してライブラリを参照する必要があります。

于 2011-05-28T06:02:31.087 に答える