2016-04-16 4 views
0

を見つけることができません。 -lboost_unit_test_frameworkは共有ライブラリを使用します。ブーストユニットテストフレームワークは、主な機能私は、この最小限のユニットテストを持っている

私はこのライブラリを以前に使っていましたが、私が定義したいくつかのBOOST_AUTO_TEST_CASEを自動的に実行していたので、主な関数を自分自身で宣言する必要はありません。

私は間違っていますか?

+0

'BOOST_TEST_MODULE'定義はインクルードの前にあります。 Boostはそれを検出して、あなたのために主要な機能を生成します。 – melak47

+0

@ melak47残念ながらそれはどちらもうまくいきません – hgiesel

+0

ああ、あなたは 'libboost_test_exec_monitor.a'も見逃しています! :) – melak47

答えて

1

Boost.Testを動的にリンクする場合、BOOST_TEST_DYN_LINKsee boost docs here)を定義する必要があります。

また、boost_test_exec_monitorにリンクする必要があります。

また、すべての構成マクロは、ライブラリヘッダーを組み込む前に定義する必要があります。

0

@ melak47もあります。私は、次のことがあまりにも、動作するはずと信じて:あなたが一緒にこのような複数のモジュールをリンクした場合

#define BOOST_TEST_MODULE my_tests TestSuites // to define main() 
#include <boost/test/unit_test.hpp> 

struct Color{}; 

BOOST_AUTO_TEST_SUITE(MyColorTests) 

BOOST_AUTO_TEST_CASE(color_test) 
{ 
    BOOST_CHECK(std::is_pod<Color>()); 
} 

BOOST_AUTO_TEST_SUITE_END() 

は、BOOST_TEST_MODULEのみインクルードが含ま前に、それらのいずれかで定義されていることを確認します。

+1

マスターテストスイートがあるので、私は別のトップレベルスイートを持つことは厳密には必要ではないと思います。この[最小限の例](http://www.boost.org/doc/libs/1_60_0/libs/test/doc/html/boost_test/intro.html#boost_test.intro.starter_example)を参照してください。しかし、傷つけることはできません:) – melak47

+0

@ melak47:合意。 – geipel

関連する問題