title: Linker errors when using boost::filesystem?
body: <p>I have the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;boost\filesystem.hpp&gt;
  
  int main(){
      const char* file_path = "my_path";
      std::cout &lt;&lt; boost::filesystem::file_size(file_path) &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>and when I build I get the following errors:</p>
  
  <pre><code>1&gt;Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const &amp; __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'native_ecat''(void)" (??__Enative_ecat@system@boost@@YAXXZ)
  1&gt;Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const &amp; __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" (??__Eerrno_ecat@system@boost@@YAXXZ)
  1&gt;Main.obj : error LNK2019: unresolved external symbol "void __cdecl boost::filesystem::path_traits::convert(char const *,char const *,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,class std::codecvt&lt;wchar_t,char,int&gt; const &amp;)" (?convert@path_traits@filesystem@boost@@YAXPEBD0AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEBV?$codecvt@_WDH@5@@Z) referenced in function "void __cdecl boost::filesystem::path_traits::dispatch&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &gt;(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,class std::codecvt&lt;wchar_t,char,int&gt; const &amp;)" (??$dispatch@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@path_traits@filesystem@boost@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@4@AEBV?$codecvt@_WDH@4@@Z)
  1&gt;Main.obj : error LNK2019: unresolved external symbol "public: static class std::codecvt&lt;wchar_t,char,int&gt; const &amp; __cdecl boost::filesystem::path::codecvt(void)" (?codecvt@path@filesystem@boost@@SAAEBV?$codecvt@_WDH@std@@XZ) referenced in function "public: __cdecl boost::filesystem::path::path&lt;char const [1]&gt;(char const (&amp;)[1],void *)" (??$?0$$BY00$$CBD@path@filesystem@boost@@QEAA@AEAY00$$CBDPEAX@Z)
  1&gt;Main.obj : error LNK2019: unresolved external symbol "unsigned __int64 __cdecl boost::filesystem::detail::file_size(class boost::filesystem::path const &amp;,class boost::system::error_code *)" (?file_size@detail@filesystem@boost@@YA_KAEBVpath@23@PEAVerror_code@system@3@@Z) referenced in function "unsigned __int64 __cdecl boost::filesystem::file_size(class boost::filesystem::path const &amp;)" (?file_size@filesystem@boost@@YA_KAEBVpath@12@@Z)
  </code></pre>
  
  <p>I am using Visual Studio and I have set the additional library path for my linker to include <code>"C:\Program Files\Boost\boost_1_54_0\stage\lib;"</code>. I also have set the include path to look at <code>C:\Program Files\Boost\boost_1_54_0;</code></p>
  
  <p>Can anyone please help? <strong>My code builds fine when I use boost::algorithm, boost::string and boost::interprocess</strong>.</p>
  
  <p>EDIT: this is what my linking if done on the command-line looks like:</p>
  
  <blockquote>
    <p>/OUT:"my_file_path" /MANIFEST /NXCOMPAT /PDB:"my_file_path"
    /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib"
    "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib"
    "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X64
    /INCREMENTAL /PGD:"my_file_path" /MANIFESTUAC:"level='asInvoker'
    uiAccess='false'" /ManifestFile:"my_file_path" /ERRORREPORT:PROMPT
    /NOLOGO /LIBPATH:"C:\Program Files\Boost\boost_1_54_0\stage\lib"
    /TLBID:1</p>
  </blockquote>