title: Qt Linker Errors
body: <p>I've been trying to get Qt working (QCreator, QIde and now VS2008).</p>
  
  <p>I have sorted out a ton of issues already, but I am now faced with the following build errors, and frankly I'm out of ideas.</p>
  
  <pre><code>Error   1   error LNK2019: unresolved external symbol "public: void __thiscall FileVisitor::processFileList(class QStringList)" (?processFileList@FileVisitor@@QAEXVQStringList@@@Z) referenced in function _main   codevisitor-test.obj    Question1
  Error   2   error LNK2019: unresolved external symbol "public: void __thiscall FileVisitor::processEntry(class QString)" (?processEntry@FileVisitor@@QAEXVQString@@@Z) referenced in function _main codevisitor-test.obj    Question1
  Error   3   error LNK2019: unresolved external symbol "public: class QString __thiscall ArgumentList::getSwitchArg(class QString,class QString)" (?getSwitchArg@ArgumentList@@QAE?AVQString@@V2@0@Z) referenced in function _main   codevisitor-test.obj    Question1
  Error   4   error LNK2019: unresolved external symbol "public: bool __thiscall ArgumentList::getSwitch(class QString)" (?getSwitch@ArgumentList@@QAE_NVQString@@@Z) referenced in function _main    codevisitor-test.obj    Question1
  Error   5   error LNK2019: unresolved external symbol "public: void __thiscall ArgumentList::argsToStringlist(int,char * * const)" (?argsToStringlist@ArgumentList@@QAEXHQAPAD@Z) referenced in function "public: __thiscall ArgumentList::ArgumentList(int,char * * const)" (??0ArgumentList@@QAE@HQAPAD@Z)    codevisitor-test.obj    Question1
  Error   6   error LNK2019: unresolved external symbol "public: __thiscall FileVisitor::FileVisitor(class QString,bool,bool)" (??0FileVisitor@@QAE@VQString@@_N1@Z) referenced in function "public: __thiscall CodeVisitor::CodeVisitor(class QString,bool)" (??0CodeVisitor@@QAE@VQString@@_N@Z)    codevisitor-test.obj    Question1
  Error   7   error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall FileVisitor::metaObject(void)const " (?metaObject@FileVisitor@@UBEPBUQMetaObject@@XZ)  codevisitor-test.obj    Question1
  Error   8   error LNK2001: unresolved external symbol "public: virtual void * __thiscall FileVisitor::qt_metacast(char const *)" (?qt_metacast@FileVisitor@@UAEPAXPBD@Z)    codevisitor-test.obj    Question1
  Error   9   error LNK2001: unresolved external symbol "public: virtual int __thiscall FileVisitor::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@FileVisitor@@UAEHW4Call@QMetaObject@@HPAPAX@Z)   codevisitor-test.obj    Question1
  Error   10  error LNK2001: unresolved external symbol "protected: virtual bool __thiscall FileVisitor::skipDir(class QDir const &amp;)" (?skipDir@FileVisitor@@MAE_NABVQDir@@@Z)    codevisitor-test.obj    Question1
  Error   11  fatal error LNK1120: 10 unresolved externals    ... \Visual Studio 2008\Projects\Assignment1\Question1\Question1\Debug\Question1.exe    Question1
  </code></pre>
  
  <p>The code is as follows:</p>
  
  <pre><code>#include "argumentlist.h"
  #include &lt;codevisitor.h&gt;
  #include &lt;QDebug&gt;
  
  void usage(QString appname) {
      qDebug() &lt;&lt; appname &lt;&lt; " Usage: \n"
           &lt;&lt; "codevisitor [-r] [-d startdir] [-f filter] [file-list]\n"
           &lt;&lt; "\t-r        \tvisitor will recurse into subdirs\n"
           &lt;&lt; "\t-d startdir\tspecifies starting directory\n"
           &lt;&lt; "\t-f filter\tfilename filter to restrict visits\n"
           &lt;&lt; "\toptional list of files to be visited";
  }
  
  int main(int argc, char** argv) {
      ArgumentList al(argc, argv);
      QString appname = al.takeFirst(); /* app name is always first in the list. */
      if (al.count() == 0) {
          usage(appname);
          exit(1);
      }
      bool recursive(al.getSwitch("-r"));
      QString startdir(al.getSwitchArg("-d"));
      QString filter(al.getSwitchArg("-f"));
      CodeVisitor cvis(filter, recursive);
      if (startdir != QString()) {
          cvis.processEntry(startdir);
      }
      else if (al.size()) {
          cvis.processFileList(al);
      }
      else
          return 1;
      qDebug() &lt;&lt; "Files Processed: %d" &lt;&lt; cvis.getNumFiles();
      qDebug() &lt;&lt; cvis.getResultString();
      return 0;
  }
  </code></pre>
  
  <p>Thanks in advance, I'm simply stumped.</p>