#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE Hello
#include <boost/test/unit_test.hpp>
int add(int i, int j)
{
return i + j;
}
BOOST_AUTO_TEST_CASE(universeInOrder)
{
BOOST_CHECK(add(2, 2) == 4);
}
<Ubuntu 14.04LTS, BOOST-1.58.0, gcc 4.8.4>
编译命令为:
g++ -o hello hello.cpp -I$BOOST_INCLUDE -L$BOOST_LIB
提示问题为:
/tmp/ccM4006M.o:在函数‘init_unit_test()’中:
hello.cpp:(.text+0x4b):对‘boost::unit_test::framework::master_test_suite()’未定义的引用
/tmp/ccM4006M.o:在函数‘main’中:
hello.cpp:(.text+0x94):对‘boost::unit_test::unit_test_main(bool (*)(), int, char**)’未定义的引用
/tmp/ccM4006M.o:在函数‘universeInOrder::test_method()’中:
hello.cpp:(.text+0x11c):对‘boost::unit_test::unit_test_log_t::set_checkpoint(boost::unit_test::basic_cstring<char const>, unsigned long, boost::unit_test::basic_cstring<char const>)’未定义的引用
hello.cpp:(.text+0x1c5):对‘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 long, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, unsigned long, ...)’未定义的引用
/tmp/ccM4006M.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:
hello.cpp:(.text+0x2b0):对‘boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::test_case*, unsigned long)’未定义的引用
/tmp/ccM4006M.o:在函数‘boost::unit_test::unit_test_log_t::unit_test_log_t()’中:
hello.cpp:(.text._ZN5boost9unit_test15unit_test_log_tC2Ev[_ZN5boost9unit_test15unit_test_log_tC5Ev]+0x2b):对‘vtable for boost::unit_test::unit_test_log_t’未定义的引用
/tmp/ccM4006M.o:在函数‘boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused> const&, boost::unit_test::basic_cstring<char const>)’中:
hello.cpp:(.text._ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE[_ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE]+0x33):对‘boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)’未定义的引用
hello.cpp:(.text._ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE[_ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE]+0x6d):对‘boost::unit_test::test_case::test_case(boost::unit_test::basic_cstring<char const>, boost::unit_test::callback0<boost::unit_test::ut_detail::unused> const&)’未定义的引用
/tmp/ccM4006M.o:在函数‘boost::unit_test::unit_test_log_t::~unit_test_log_t()’中:
hello.cpp:(.text._ZN5boost9unit_test15unit_test_log_tD2Ev[_ZN5boost9unit_test15unit_test_log_tD5Ev]+0x13):对‘vtable for boost::unit_test::unit_test_log_t’未定义的引用
collect2: error: ld returned 1 exit status
请看看这个: https://blog.csdn.net/zhu2695/article/details/51286291