首页 文章

升压单元测试编译在Eclipse中失败

提问于
浏览
4

我想通过Eclipse编译以下代码行,但在构建时我会得到错误,我无法理解..是否有任何人有解决方案来解决它 .

#include <boost/test/unit_test.hpp>


#define BOOST_TEST_DYN_LINK
#define BOOST_AUTO_TEST_MAIN
#define BOOST_TEST_MODULE First_TestSuite

BOOST_AUTO_TEST_CASE( First_TEst )
 {

BOOST_CHECK(2 == 2);


    }

错误

12:55:13 ****增量构建配置调试项目NewProject ****信息:内部构建器用于构建g“-IC:\ boost_1_52_0 \ boost_1_52_0”-O0 -g3 -Wall -c -fmessage -length = 0 -o“src \ NewProject.o”“.. \ src \ NewProject.cpp”g -o NewProject.exe“src \ NewProject.o”src \ NewProject.o:在函数ZN10First_TEst11test_methodEv'中:C:\ Users \ sam \ workspace1 \ NewProject \ Debug /../ src / NewProject.cpp:19:对boost :: unit_test :: unit_test_log_t :: set_checkpoint的未定义引用(boost :: unit_test :: basic_cstring,unsigned int,boost :: unit_test :: basic_cstring)'C:\ Users \ sam \ workspace1 \ NewProject \ Debug /../ src / NewProject.cpp:19:对boost :: test_tools :: tt_detail :: check_impl的未定义引用(boost :: test_tools :: predicate_result const&,boost :: unit_test :: lazy_ostream const&,boost :: unit_test :: basic_cstring <char const>,unsigned int,boost :: test_tools :: tt_detail :: tool_level,boost :: test_tools :: tt_detail :: check_type,unsigned int ,...)'src \ NewProject.o:在函数_static_initialization_a中nd_destruction_0':C:\ Users \ sam \ workspace1 \ NewProject \ Debug /../ src / NewProject.cpp:16:未定义引用boost :: unit_test :: ut_detail :: auto_test_unit_registrar :: auto_test_unit_registrar(boost :: unit_test :: test_case *,unsigned long)'src \ NewProject.o:在函数ZN5boost9unit_test15unit_test_log_tC1Ev':C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:131:未定义引用vtable for boost :: unit_test :: unit_test_log_t'src \ NewProject.o:在函数ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE':C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_suite_impl.hpp:255:对boost :: unit_test :: ut_detail :: normalize_test_case_name的未定义引用(boost :: unit_test :: basic_cstring <char const >)'C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_suite_impl.hpp:255:对boost :: unit_test :: test_case :: test_case的未定义引用(boost :: unit_test :: basic_cstring,boost :: unit_test :: callback0 const& )'src \ NewProject.o:在函数ZN5中boost9unit_test15unit_test_log_tD1Ev':C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:93:未定义引用tovtable for boost :: unit_test :: unit_test_log_t'c:/ mingw / bin /../ lib / gcc / mingw32 / 4.7 . 2 /../../../ libmingw32.a(main.o):main.c :( . text.startup 0xa7):未定义引用`WinMain @ 16'colle2.exe:错误:ld返回1退出状态12:55:24构建完成(耗时11s.567ms)

3 回答

  • 1

    好像你忘了添加 -lboost_unit_test_framework-mt 或在Windows系统中命名的那些库

  • 5

    如果您只想使用 Headers 变体,则应包含以下内容

    #define BOOST_TEST_MODULE First_TestSuite
    #include <boost/test/included/unit_test.hpp>
    

    而不是你的

    #include <boost/test/unit_test.hpp>
    

    而且你只需要 #define BOOST_TEST_MODULE First_TestSuite 只有 Headers 变体 .

  • 6

相关问题