title: Solution upgrade from VS2008 to VS2010 using boost library. Error LNK2001
body: <p>I'm currently attempting to build a solution developed in VS2008 in VS2010. For the design purpose the projects must be built using the v90 toolset and have a target framework of v3.5. After the conversion wizard was done with the imported projects I've gone through and changed each of their target frameworks/toolsets to these values. The projects use the following boost libraries: thread,system,regex and date_time. I have built these libraries from the boost_1_47 version to the v90 toolset using the following command in the VS2010 command prompt: <em>b2 toolset=msvc-9.0 –build-type=complete –with-'libraryname'.</em> </p>
  
  <p>The links to the boost root folder is referenced in the C++ additional include directories and the boost lib folder the libraries were built into is referenced in the linker additional library directories. I am building for a 32 bit platform.</p>
  
  <p>When attempting a build of the solution I am getting the following errors:</p>
  
  <pre><code>Error   17  error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall boost::thread::operator struct boost::detail::thread_move_t&lt;class boost::thread&gt;(void)" (__imp_??Bthread@boost@@QAE?AU?$thread_move_t@Vthread@boost@@@detail@1@XZ)
  
  Error   18  error LNK2001: unresolved external symbol "__declspec(dllimport) public: class boost::thread &amp; __thiscall boost::thread::operator=(struct boost::detail::thread_move_t&lt;class boost::thread&gt;)" (__imp_??4thread@boost@@QAEAAV01@U?$thread_move_t@Vthread@boost@@@detail@1@@Z)
  
  Error   19  error LNK1120: 2 unresolved externals
  </code></pre>
  
  <p>I believe the cause of the error can be seen in the following part of the boost auto_link.hpp file:</p>
  
  <pre><code>#elif defined(BOOST_MSVC) &amp;&amp; (BOOST_MSVC == 1500)
  
     // vc90:
  #  define BOOST_LIB_TOOLSET "vc90"
  #elif defined(BOOST_MSVC) &amp;&amp; (BOOST_MSVC &gt;= 1600)
  
  
  // vc10:
  
  #  define BOOST_LIB_TOOLSET "vc100"
  </code></pre>
  
  <p>This shows the auto linker is still attempting to link to a v100 library despite the boost library and the project files being set to a v90 toolset.  I don't know where/how the BOOST_MSVC value is defined but hopefully this is what's causing my linker errors.</p>
  
  <p>My project build.h file contains the following statement:</p>
  
  <p><code>#define BOOST_ALL_DYN_LINK</code></p>