title: VC++ Problems using gumbo-query (linking error)
body: <p>I've got a VC++ project, and I'm attempting to use the extension of the gumbo-query library, found <a href="https://github.com/lazytiger/gumbo-query" rel="nofollow noreferrer" title="here">here</a>. This library wraps/extends Google's gumbo-parser found <a href="https://github.com/google/gumbo-parser" rel="nofollow noreferrer">here</a>. The following is the exact steps I've taken - I'm not very familiar with importing libraries, so I've done what I do to use the Boost libraries:</p>
  
  <p>In Visual Studio (VS Community 2013), under the project settings -> Configuration Properties -> C/C++ -> General I have put the path to a folder that contains all of the source files from both of the projects linked above. Specifically, I placed the .c, .cpp and .h files from the src folder of both projects and referenced these in my projects settings as an include directory.</p>
  
  <p>Following the example file for the project that extends Google's gumbo-parser (<a href="https://stackoverflow.com/questions/5459205/background-worker-report-progress-with-string-array">found here</a>), I added these two lines to import the library:</p>
  
  <pre><code>#include "Document.h"
  #include "Node.h"
  </code></pre>
  
  <p>At this point, my solution compiles fine. However, continuing to follow the example file, adding the first variable declaration:</p>
  
  <pre><code>CDocument d;
  </code></pre>
  
  <p>Causes a linker error, as follows:</p>
  
  <pre><code>1&gt;Main.obj : error LNK2028: unresolved token (0A0003B7) "public: __thiscall CDocument::CDocument(void)" (??0CDocument@@$$FQAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
  1&gt;Main.obj : error LNK2028: unresolved token (0A0003B8) "public: virtual __thiscall CDocument::~CDocument(void)" (??1CDocument@@$$FUAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
  1&gt;Main.obj : error LNK2019: unresolved external symbol "public: __thiscall CDocument::CDocument(void)" (??0CDocument@@$$FQAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
  1&gt;Main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall CDocument::~CDocument(void)" (??1CDocument@@$$FUAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
  1&gt;..{omitted}..\MyApplication.exe : fatal error LNK1120: 4 unresolved externals
  </code></pre>
  
  <p>This error appears to occur no matter where I put a CDocument instantiation.</p>
  
  <p>What can I do to rectify this? VS seems to think the includes are fine, and moreso when I put in CDocument d; it lights up to show it recognises the CDocument type.</p>