2010-11-09 2 views
3

Почему это (скопировано из boost site) дает мне ошибку ?! в VS 2010 Ultimate:Проблема с Boost :: Test

#include <boost\test\unit_test.hpp> 

#define BOOST_TEST_MODULE MyTest 


int add(int i, int j) { return i+j; } 

BOOST_AUTO_TEST_CASE(my_test) 
{ 
    // seven ways to detect and report the same error: 
    BOOST_CHECK(add(2,2) == 4);  // #1 continues on error 

    BOOST_REQUIRE(add(2,2) == 4);  // #2 throws on error 

    if(add(2,2) != 4) 
     BOOST_ERROR("Ouch...");   // #3 continues on error 

    if(add(2,2) != 4) 
     BOOST_FAIL("Ouch...");    // #4 throws on error 

    if(add(2,2) != 4) throw "Ouch..."; // #5 throws on error 

    BOOST_CHECK_MESSAGE(add(2,2) == 4, // #6 continues on error 
         "add(..) result: " << add(2,2)); 

    BOOST_CHECK_EQUAL(add(2,2), 4); // #7 continues on error 
} 

Ошибка

Error 1 error LNK2019: unresolved external symbol "class boost::unit_test::test_suite * __cdecl init_unit_test_suite(int,char * * const)" ([email protected]@[email protected][email protected]@@[email protected]) referenced in function _main 

ответ

13

Попробуйте определения BOOST_TEST_MODULE, прежде чем включить заголовок.

+0

теперь я получаю: Ошибка \t \t 1 ошибка LNK2019: неразрешенный внешний символ _Главная ссылается функция ___tmainCRTStartup –

+0

@There: Прочитайте [документацию] (http://boost.org/doc/libs/1_44_0/libs/ тест/DOC/HTML/UTF/compilation.html). Особенно это касается авто-ссылок. Возможно, вам придется связать библиотеку вручную. На данный момент я не могу вам помочь. –

+0

Это одно из тех раздражающих вещей, которые я время от времени забываю. Хмм! Arggggh! –

Смежные вопросы