id summary reporter owner description type status milestone component version severity resolution keywords cc 3435 Linking failure with MSVC 7.1 Andrey Semashev Gennadiy Rozental "While trying to build Boost.Test 1.40 into a shared library with MSVC 7.1 I encountered the following linking errors: {{{ boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::results_collector_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S11"" (?$S11@?1??instance@?$singleton@Vresults_collector_t@unit_test@boost@@@unit_test@boost@@SAAAVresults_collector_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::unit_test_monitor_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S11"" (?$S11@?1??instance@?$singleton@Vunit_test_monitor_t@unit_test@boost@@@unit_test@boost@@SAAAVunit_test_monitor_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::results_collector_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S13"" (?$S13@?1??instance@?$singleton@Vresults_collector_t@unit_test@boost@@@unit_test@boost@@SAAAVresults_collector_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::unit_test_log_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S13"" (?$S13@?1??instance@?$singleton@Vunit_test_log_t@unit_test@boost@@@unit_test@boost@@SAAAVunit_test_log_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::unit_test_log_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S14"" (?$S14@?1??instance@?$singleton@Vunit_test_log_t@unit_test@boost@@@unit_test@boost@@SAAAVunit_test_log_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::results_collector_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S26"" (?$S26@?1??instance@?$singleton@Vresults_collector_t@unit_test@boost@@@unit_test@boost@@SAAAVresults_collector_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::unit_test_log_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S30"" (?$S30@?1??instance@?$singleton@Vunit_test_log_t@unit_test@boost@@@unit_test@boost@@SAAAVunit_test_log_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::results_collector_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S3"" (?$S3@?1??instance@?$singleton@Vresults_collector_t@unit_test@boost@@@unit_test@boost@@SAAAVresults_collector_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::progress_monitor_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S5"" (?$S5@?1??instance@?$singleton@Vprogress_monitor_t@unit_test@boost@@@unit_test@boost@@SAAAVprogress_monitor_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::results_collector_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S5"" (?$S5@?1??instance@?$singleton@Vresults_collector_t@unit_test@boost@@@unit_test@boost@@SAAAVresults_collector_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::results_collector_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S6"" (?$S6@?1??instance@?$singleton@Vresults_collector_t@unit_test@boost@@@unit_test@boost@@SAAAVresults_collector_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::unit_test_log_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S7"" (?$S7@?1??instance@?$singleton@Vunit_test_log_t@unit_test@boost@@@unit_test@boost@@SAAAVunit_test_log_t@34@XZ@4IA) boost_unit_test_framework-vc71-mt-p-1_40.exp : error LNK2001: unresolved external symbol ""unsigned int `public: static class boost::unit_test::unit_test_log_t & __cdecl boost::unit_test::singleton::instance(void)'::`2'::$S9"" (?$S9@?1??instance@?$singleton@Vunit_test_log_t@unit_test@boost@@@unit_test@boost@@SAAAVunit_test_log_t@34@XZ@4IA) }}} Apparently, this is a compiler issue, as the missing symbols are internal variables related to the function-local statics. However, I managed to work it around, please find the patch attached. I didn't test it against more recent MSVC versions, it may happen that the newer compilers require this twist, too." Bugs closed Boost 1.41.0 test Boost 1.40.0 Problem wontfix msvc