Boost 라이브러리 실행 문제

Boost 라이브러리 실행 문제

저는 우분투와 부스트의 초보자입니다. 우분투 11.10을 설치하고 웹사이트(http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/)의 지침에 따라 BOOST 단위 테스트를 시도했습니다. 부스트 라이브러리를 설치하고 3부와 같이 코드를 복사하여 실행하려고 하는데 실행 중에 오류가 발생합니다.

8w6Wa.o: In function `init_unit_test()':
bTest.cpp:(.text+0x51): undefined reference to
`boost::unit_test::framework::master_test_suite()'
/tmp/ccZ8w6Wa.o: In function `main':
bTest.cpp:(.text+0x9f): undefined reference to
`boost::unit_test::unit_test_main(bool (*)(), int, char**)'
/tmp/ccZ8w6Wa.o: In function `universeInOrder::test_method()':
bTest.cpp:(.text+0x121): undefined reference to
`boost::unit_test::unit_test_log_t::set_checkpoint(boost::unit_test::basic_cstring<char
const>, unsigned int, boost::unit_test::basic_cstring<char const>)'
bTest.cpp:(.text+0x1e3): 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, ...)'
/tmp/ccZ8w6Wa.o: In function `__static_initialization_and_destruction_0(int, int)':
bTest.cpp:(.text+0x2ea): undefined reference to
`boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::test_case*,
unsigned long)'
/tmp/ccZ8w6Wa.o: In function `boost::unit_test::unit_test_log_t::unit_test_log_t()':
bTest.cpp:(.text._ZN5boost9unit_test15unit_test_log_tC2Ev[_ZN5boost9unit_test15unit_test_log_tC5Ev]+0x21):
undefined reference to `vtable for boost::unit_test::unit_test_log_t'
/tmp/ccZ8w6Wa.o: In function
`boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
c    onst&, boost::unit_test::basic_cstring<char const>)':
bTest.cpp:(.text._ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE[boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
const&, boost::unit_test::basic_cstring<char const>)]+0x1d): undefined reference to
`boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char
const>)'
bTest.cpp:(.text._ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE[boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
const&, boost::unit_test::basic_cstring<char const>)]+0x5d): undefined reference to
`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/ccZ8w6Wa.o: In function `boost::unit_test::unit_test_log_t::~unit_test_log_t()':
bTest.cpp:(.text._ZN5boost9unit_test15unit_test_log_tD2Ev[_ZN5boost9unit_test15unit_test_log_tD5Ev]+0xb):
undefined reference to `vtable for boost::unit_test::unit_test_log_t'
collect2: ld returned 1 exit status

또한 sudo apt-get install libboost-dev-all을 설치하려고 해도 여전히 동일한 오류가 발생합니다.

이 문제를 해결하는 방법을 알려주십시오. 미리 감사드립니다.

답변1

나는 사용하는 대신 명령의 순서에 대한 해결책을 얻었습니다.

g++ -o hello -lboost_unit_test_framework hello.cpp(이전 버전에서는 작동했었습니다)

그것을로 바꾸다

g++ -o hello hello.cpp -lboost_unit_test_framework

이것은 잘 작동합니다.

나는 언급했다https://stackoverflow.com/questions/7755668/linking-against-boost-thread-fails-under-ubuntu-11-10

관련 정보