2010-11-09 65 views
3

为什么这个(复制自boost site)给我一个错误?在VS 2010旗舰版:升压问题::测试

#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

现在我得到错误:错误LNK2019:在功能___tmainCRTStartup – 2010-11-09 10:48:43

+0

@There解析的外部符号_main引用:阅读[文件](http://boost.org/doc/libs/1_44_0/libs/测试/ DOC/HTML/UTF/compilation.html)。特别是关于自动链接的部分。您可能必须手动链接库。目前我无法帮助你。 – 2010-11-09 10:52:50

+0

这是我不时忘记的那些烦人的事情之一。哎呀! Arggggh! – 2010-12-13 14:25:27