   Linker Errors in custom dll
  I'm writing my own 2d game engine. The engine has a root class called Root. Root has a member called SystemManager. SystemManager has a member called Timer. Root is the only class which is exported from the DLL with this block of code:#ifdef ION_EXPORTS#define ION_API __declspec(dllexport)#else#define ION_API __declspec(dllimport)#endifTimer is actually an interface to platform independant timers, so there is a class called TimerWin32 and TimerMac.This is the source to my test applicationIon::Root* root = new Ion::Root(params);Ion::System::SystemManager* m = root->GetSystemManager();while(root->Run()){cout << m->GetTimer()->GetRealTime();Sleep(100);cout << m->GetTimer()->GetRealTime();}I then get the following linker error:error LNK2019: unresolved external symbol "public: class Ion::System::Timer * __thiscall Ion::System::SystemManager::GetTimer(void)" (?GetTimer@SystemManager@System@Ion@@QAEPAVTimer@23@XZ) referenced in function _mainI have no idea on how to fix this problem and any help will be greatly appreciated. Thank you   