0

テスト スイートを cppunit に対してコンパイルすると、次のリンク エラーが発生します。

error LNK2019: unresolved external symbol "public: virtual __thiscall CppUnit::TextTestRunner::~TextTestRunner(void)" (??1TextTestRunner@CppUnit@@UAE@XZ) referenced in function _wmain

提供された例は問題なくリンクしているため、この問題はわかりません。

マクロを使用してテストを登録しています。

 CPPUNIT_TEST_SUITE_REGISTRATION
 CPPUNIT_TEST_SUITE
 etc

私のテストクラスは CPPUNIT_NS::TestFixture から派生しています

ここに「メイン」コードがあります:

int _tmain(int argc, _TCHAR* argv[])
{
     // Get the top level suite from the registry
     CPPUNIT_NS::Test *suite = CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest();

     // Adds the test to the list of test to run
     CPPUNIT_NS::TextUi::TestRunner runner;
     runner.addTest( suite );

     // Change the default outputter to a compiler error format outputter
     runner.setOutputter( new CPPUNIT_NS::CompilerOutputter( &runner.result(),
                                                      CPPUNIT_NS::stdCOut() ) );
     // Run the test.
     bool wasSucessful = runner.run();

     // Return error code 1 if the one of test failed.
    return wasSucessful ? 0 : 1;
}
4

1 に答える 1

2

プロジェクトの[リンカー]->[入力]->[追加の依存関係]テキストボックスに適切なライブラリを追加したことを確認しますか?私はそれが(リリース/ Unicodeバージョンの場合)あるべきだと信じています:

testrunneru.lib cppunit.lib

また、適切なディレクトリ名を[リンカ]->[一般]->[追加のライブラリディレクトリ]に追加して、リンカがライブラリを見つけられるようにする必要があります。

本当のストレッチですが、一度私に起こったのは、cppunitを再構築する必要があったことです。私のコンパイラはアップグレードまたはパッチが適用されたと思います。

問題を再現する非常に短いが完全なソースファイルを投稿できれば、それも役立つかもしれません。ここでincludeステートメントだけが欠落していると思いますか?

于 2009-01-29T18:12:51.890 に答える