id summary reporter owner description type status milestone component version severity resolution keywords cc 1892 boost::spirit::static_ causes link error (using wave) anonymous Joel de Guzman "When using wave, I encounter a link error when attempting to #include wave headers in more than one translation unit. Although this is via use of wave, I believe it is due to a breaking change in spirit. There is no error in 1.34. This effectively renders wave/spirit next to useless as it forces users to use one source file in their projects. The link error text is (vs2005): 1>token_output.obj : error LNK2005: ""public: __thiscall `public: __thiscall boost::spirit::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>(class boost::spirit::impl::get_definition_static_data_tag)'::`2'::destructor::~destructor(void)"" (??1destructor@?1???0?$static_@V?$thread_specific_ptr@V?$weak_ptr@U?$grammar_helper@U?$grammar@Vtime_conversion_grammar@time_conversion@util@wave@boost@@U?$parser_context@Unil_t@spirit@boost@@@spirit@5@@spirit@boost@@Vtime_conversion_grammar@time_conversion@util@wave@3@V?$scanner@PBDU?$scanner_policies@U?$skipper_iteration_policy@Uiteration_policy@spirit@boost@@@spirit@boost@@Umatch_policy@23@Uaction_policy@23@@spirit@boost@@@23@@impl@spirit@boost@@@boost@@@boost@@Vget_definition_static_data_tag@impl@spirit@2@@spirit@boost@@QAE@Vget_definition_static_data_tag@impl@23@@Z@QAE@XZ) already defined in scramble.obj 1>token_output.obj : error LNK2005: ""public: static void __cdecl `public: __thiscall boost::spirit::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>(class boost::spirit::impl::get_definition_static_data_tag)'::`3'::default_ctor::construct(void)"" (?construct@default_ctor@?2???0?$static_@V?$thread_specific_ptr@V?$weak_ptr@U?$grammar_helper@U?$grammar@Vtime_conversion_grammar@time_conversion@util@wave@boost@@U?$parser_context@Unil_t@spirit@boost@@@spirit@5@@spirit@boost@@Vtime_conversion_grammar@time_conversion@util@wave@3@V?$scanner@PBDU?$scanner_policies@U?$skipper_iteration_policy@Uiteration_policy@spirit@boost@@@spirit@boost@@Umatch_policy@23@Uaction_policy@23@@spirit@boost@@@23@@impl@spirit@boost@@@boost@@@boost@@Vget_definition_static_data_tag@impl@spirit@2@@spirit@boost@@QAE@Vget_definition_static_data_tag@impl@34@@Z@SAXXZ) already defined in scramble.obj " Bugs closed Boost 1.36.0 spirit Boost 1.35.0 Regression fixed