title: C++ linker troubles with DirectX in Windows SDK
body: <p>I'm writing a game for Windows 7 and 8. I've been using VS2012. So basically I'm trying to get my head around the Windows SDK. d3dX10math has been replaced, I've come to terms with that, and I've included DirectXMath.h where necessary.</p>
  
  <p>The problem comes, as it so often does, with the linker. It's not linking to the necessary library. They are right there in external dependencies (I'm assuming that the old d3dx10math.lib has been replaced by these .inl files?). I can't find an equivalent .lib file so that's what I'm assuming.</p>
  
  <p>It just doesn't want to actually link to them. I've searched high and low online and nobody seems to have asked this question. I feel like I've missed something?</p>
  
  <pre><code>#ifndef _CDEVICE_H_
  #define _CDEVICE_H_
  
  //#include &lt;vector&gt;
  
  #pragma once
  //#pragma comment(lib, "dxgi.lib")
  //#pragma comment(lib, "d3d11.lib")
  
  #include &lt;dxgi.h&gt;
  #include &lt;d3d11.h&gt;
  #include &lt;DirectXMath.h&gt;
  
  using namespace DirectX;
  
  static class cDevice
  {
  public:
      cDevice();
      cDevice(const cDevice&amp;);
      ~cDevice();
  private:
      static ID3D11Device* device;
      static XMFLOAT2 float2;
  } device;
  
  #endif
  </code></pre>
  
  <p>and then I get this linker error</p>
  
  <pre><code>1&gt;cDevice.obj : error LNK2001: unresolved external symbol "private: static struct DirectX::XMFLOAT2 cDevice::float2" (?float2@cDevice@@0UXMFLOAT2@DirectX@@A)
  </code></pre>