当我的测试套件再次编译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;
}
答案 0 :(得分:2)
您确定已将相应的库添加到链接器 - >输入 - >您项目的附加依赖项文本框?我相信它应该是(对于Release / Unicode版本):
testrunneru.lib cppunit.lib
您还需要确保链接器可以通过向链接器添加适当的目录名来找到库 - >一般 - >其他图书馆目录。
真正的延伸,但它发生在我身上,是我需要重建cppunit。我认为我的编译器已升级或修补。
如果您可以发布一个非常简短但完整的源文件来重现问题,这也可能会有所帮助。我想你只是错过了这里的include语句?