I have been using a source template for unit test with boost.test, which used to be working well until I started to use VC2012 RC. 

 

 

Here’s a minimal repo:

 

#include <boost/test/unit_test.hpp>

using namespace boost::unit_test::framework;

using namespace boost::unit_test;

 

test_suite* init_unit_test_suite(int argc, char *argv[])

{

    BOOST_TEST_MESSAGE("hello test.");

 

    return 0;

}

 

 

With the same build options:

cl.exe /EHsc /MT main.cpp

 

VC2010 compiles fine. VC2012 outputs:

LINK : fatal error LNK1561: entry point must be defined.

 

Added BOOST_TEST_MAIN caused errors for both compilers.

error C2084: function 'boost::unit_test::test_suite *init_unit_test_suite(int,char *[])' already has a body

 

I tested on both 1.49 and 1.50. And the results are the same. I suspect there is a bug of version check against MSVC but could not locate it.