
Here is a tutorial. I compile succeeded at DEBUG mode, but failed at RELEASE mode. And I got LNK2001 Error. #include <boost/statechart/event.hpp> #include <boost/statechart/state_machine.hpp> #include <boost/statechart/simple_state.hpp> #include <boost/statechart/transition.hpp> namespace sc = boost::statechart; struct EvStartStop : sc::event< EvStartStop > {}; struct EvReset : sc::event< EvReset > {}; struct Active; struct StopWatch : sc::state_machine< StopWatch, Active > {}; struct Stopped; struct Active : sc::simple_state< Active, StopWatch, Stopped > { typedef sc::transition< EvReset, Active > reactions; }; struct Running : sc::simple_state< Running, Active > { typedef sc::transition< EvStartStop, Stopped > reactions; }; struct Stopped : sc::simple_state< Stopped, Active > { typedef sc::transition< EvStartStop, Running > reactions; }; // A state can define an arbitrary number of reactions. That's // why we have to put them into an mpl::list<> as soon as there // is more than one of them // (see Specifying multiple reactions for a state). int main() { StopWatch myWatch; myWatch.initiate(); myWatch.process_event( EvStartStop() ); myWatch.process_event ( EvStartStop() ); myWatch.process_event( EvStartStop() ); myWatch.process_event( EvReset() ); return 0; } //Output Linking... statechart.obj : error LNK2001: unresolved external symbol "public: void __thiscall boost::statechart::detail::no_context<struct EvReset>::no_function(struct EvReset const &)" (?no_function@?$no_context@UEvReset@@@ detail@statechart @boost@@QAEXABUEvReset@@@Z) statechart.obj : error LNK2001: unresolved external symbol "public: void __thiscall boost::statechart::detail::no_context<struct EvStartStop>::no_function(struct EvStartStop const &)" (?no_function@?$no_context@UEvStartStop@@@ detail@statechart @boost@@QAEXABUEvStartStop@@@Z) i:\programme\test\statechart\Release\statechart.exe : fatal error LNK1120: 2 unresolved externals How can I solve the problem? Thank you.