简体   繁体   English

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

[英]Boost Unit Test compilation fail throught Eclipse

I want to compile following line of code through Eclipse but during built time i will get Error which i can not understand.. Is any one have a solution to solve it. 我想通过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);


    }

Error 错误

12:55:13 **** Incremental Build of configuration Debug for project NewProject **** Info: Internal Builder is used for build 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: In function ZN10First_TEst11test_methodEv': C:\\Users\\sam\\workspace1\\NewProject\\Debug/../src/NewProject.cpp:19: undefined reference to 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: undefined reference to 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: In function _static_initialization_and 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: undefined reference to boost :: unit_test :: unit_test_log_t :: set_checkpoint的ZN10First_TEst11test_methodEv': C:\\Users\\sam\\workspace1\\NewProject\\Debug/../src/NewProject.cpp:19: undefined reference to (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: In function未定义引用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: In function _static_initialization_and中 _destruction_0': C:\\Users\\sam\\workspace1\\NewProject\\Debug/../src/NewProject.cpp:16: undefined reference to boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::test_case*, unsigned long)' src\\NewProject.o: In function ZN5boost9unit_test15unit_test_log_tC1Ev': C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:131: undefined reference to vtable for boost::unit_test::unit_test_log_t' src\\NewProject.o: In function 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: undefined reference to 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: undefined reference to boost::unit_test::test_case::test_case(boost::unit_test::basic_cstring, boost::unit_test::callback0 const&)' src\\NewProject.o: In function ZN5boost9unit_test15unit_test_log_tD1Ev': C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:93: undefined reference to _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: In function 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: In function 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: undefined reference to未定义引用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: undefined reference to boost :: unit_test :: test_case :: test_case的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: undefined reference to (boost :: unit_test :: basic_cstring,boost :: unit_test :: callback0 const& )'src \\ NewProject.o:在函数ZN5boost9unit_test15unit_test_log_tD1Ev': C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:93: undefined reference to ZN5boost9unit_test15unit_test_log_tD1Ev': C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:93: undefined reference to vtable 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): undefined reference to `WinMain@16' collect2.exe: error: ld returned 1 exit status ZN5boost9unit_test15unit_test_log_tD1Ev': C:/boost_1_52_0/boost_1_52_0/boost/test/unit_test_log.hpp:93: undefined reference to vtable 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'collect2.exe:错误:ld返回1退出状态

12:55:24 Build Finished (took 11s.567ms) 12:55:24建成(耗时11s.567ms)

似乎你忘了添加-lboost_unit_test_framework-mt或者在windows系统中命名的那些库

If you want to only use the header variant, you should include the following 如果您只想使用标题变体,则应包含以下内容

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

instead of your 而不是你的

#include <boost/test/unit_test.hpp>

And you only need the #define BOOST_TEST_MODULE First_TestSuite with the header only variant. 并且您只需要#define BOOST_TEST_MODULE First_TestSuite和仅标头变体。

You should use the Single Header Variant of the UTF from Boost. 您应该使用来自Boost Single Header Variant of the UTFSingle Header Variant of the UTF

http://www.boost.org/doc/libs/1_46_1/libs/test/doc/html/utf/user-guide/usage-variants/single-header-variant.html http://www.boost.org/doc/libs/1_46_1/libs/test/doc/html/utf/user-guide/usage-variants/single-header-variant.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM