title: error LNK2001: unresolved external symbol "private: static class
body: <blockquote>
    <p>error LNK2001: unresolved external symbol "private: static class irrklang::ISoundEngine * GameEngine::Sound::_soundDevice" (?_soundDevice@Sound@GameEngine@@0PAVISoundEngine@irrklang@@A)</p>
  </blockquote>
  
  <p>I cannot figure out why i am receiving this error. I believe i am initializing correctly. Can anyone lend a hand?</p>
  
  <p>sound.h</p>
  
  <pre><code>class Sound
  {
  private:
      static irrklang::ISoundEngine* _soundDevice;
  public:
      Sound();
      ~Sound();
  
      //getter and setter for _soundDevice
      irrklang::ISoundEngine* getSoundDevice() { return _soundDevice; }
  //  void setSoundDevice(irrklang::ISoundEngine* value) { _soundDevice = value; }
      static bool initialise();
      static void shutdown();
  </code></pre>
  
  <p>sound.cpp</p>
  
  <pre><code>namespace GameEngine
  {
  Sound::Sound() { }
  Sound::~Sound() { }
  
  bool Sound::initialise()
  {
      //initialise the sound engine
      _soundDevice = irrklang::createIrrKlangDevice();
  
      if (!_soundDevice)
      {
          std::cerr &lt;&lt; "Error creating sound device" &lt;&lt; std::endl;
          return false;
      }
  
  }
  
  void Sound::shutdown()
  {
      _soundDevice-&gt;drop();
  }
  </code></pre>
  
  <p>and where i use the sound device</p>
  
  <pre><code>GameEngine::Sound* sound = new GameEngine::Sound();
  
  namespace GameEngine
  {
  bool Game::initialise()
  {
      ///
      /// non-related code removed
      ///
  
      //initialise the sound engine
      if (!Sound::initialise())
          return false;
  </code></pre>
  
  <p>Any help would be greatly appreciated</p>