title: Google Test: error LNK2019: unresolved external symbol with Visual Studio 2013
body: <p>I'm trying to get my first ever unit test with Google Test framework + Visual Studio 2013.However I'm hitting the below error and can't understand why.</p>
  
  <blockquote>
    <p>1>------ Build started: Project: FirstGoogleTest, Configuration: Debug Win32 ------ <br>
    2>------ Build started: Project: googleTest, Configuration: Debug Win32 ------ <br>
    1>  MyMultiplier.cpp <br>
    2>  gtest_main.cc<br>
    1>  main.cpp<br>
    1>  Generating Code...<br>
    2>  gtest-all.cc<br>
    1>  FirstGoogleTest.vcxproj -> D:_Vault\Workspaces\UnitTestLearning\FirstGoogleTest\Debug\FirstGoogleTest.exe<br>
    2>  Generating Code...<br>
    2>  googleTest.vcxproj -> D:_Vault\Workspaces\UnitTestLearning\FirstGoogleTest\Debug\googleTest.lib<br>
    3>------ Build started: Project: MyMultiplier_UnitLevelTest, Configuration: Debug Win32 ------<br>
    3>  MyMultiplier_UnitLevelTest.cpp<br>
    3>MyMultiplier_UnitLevelTest.obj : error LNK2019: unresolved external symbol "public: unsigned int __thiscall <br>MyMultiplier::multiply(unsigned int,unsigned int)" (?multiply@MyMultiplier@@QAEIII@Z) referenced in function "private: virtual void __thiscall MyMultiplier_multiplyNormalSmallValues_Test::TestBody(void)" (?TestBody@MyMultiplier_multiplyNormalSmallValues_Test@@EAEXXZ)<br>
    3>D:_Vault\Workspaces\UnitTestLearning\FirstGoogleTest\Debug\MyMultiplier_UnitLevelTest.exe : fatal error LNK1120: 1 unresolved externals<br>
    ========== Build: 2 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========<br></p>
  </blockquote>
  
  <p>The solution structures is as follow: <br>
  <a href="https://www.dropbox.com/s/0cu8eqr7pz3ajaz/Untitled.png" rel="noreferrer">https://www.dropbox.com/s/0cu8eqr7pz3ajaz/Untitled.png</a> <br></p>
  
  <p>The ULT project's "References" projects include "googleTest" and "FirstGoogleTest".
  here is the "MyMultiplier_UnitLevelTest.cpp"</p>
  
  <pre><code>#include "gtest/gtest.h"  // access test macro
  #include "MyMultiplier.h"   // testee
  #include &lt;iostream&gt;
  #include &lt;string&gt;
  
  TEST(MyMultiplier, multiplyNormalSmallValues){
      MyMultiplier m;
      std::string name("MyMultiplier_ULT");
      unsigned int a = 5;
      unsigned int b = 10;
      unsigned int answer = m.multiply(a, b/*, name*/);
      ASSERT_EQ(a * b, answer);
  
  }
  </code></pre>
  
  <p>the "multiply" function's declaration in MyMultiplier.h: <br></p>
  
  <pre><code>class MyMultiplier{
  public:
      unsigned int multiply(unsigned int a, unsigned int b/*, std::string&amp; name*/);
  };
  </code></pre>
  
  <p>the signature matches and also the header file is included.  why the ult project can't find the symbol?</p>
  
  <p>the entire solution can be downloaded here: <a href="https://www.dropbox.com/sh/vc89o5ep139wkuk/AAA8Z76q6iAkP25zTmu9bR3ia" rel="noreferrer">https://www.dropbox.com/sh/vc89o5ep139wkuk/AAA8Z76q6iAkP25zTmu9bR3ia</a></p>