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.