0

I have a VS2013 solution with 4 projects. My startup project (A) is dependent on the other 3 projects (B, C and D). All 3 projects compile perfectly without linking errors.

My startup project asks for libboost_filesystem-vc120-mt-gd-1_55.lib but when looking in project properties of all projects, there's no lib dependencies, not even in the source files as #pragma comment(lib). Furthermore, the only project that uses boost/filesystem.hpp is B, which compiles without errors.

Note that I have all boost libs under C:\Program Files (x86)\Boost\lib32-msvc-12.0 and I'm using boost 1.56.

My questions are:

  1. Why is A asking for a boost lib when B is the only project using boost's filesystem?
  2. Why is A asking for a boost 1.55 lib when I have boost 1.56?
  3. If B is the only project using boost::filesystem and it compiles perfectly, why am I getting this linker error?
  4. Why is that dependency there are no explicit lib dependencies in project properties or source code?

I've also looked in all header files under the filesystem includes and I saw no #pragma comment(lib)

1 Answers1

0

First of all I recomend to rebuild all projects from scratch.

Next try compiler option /showIncludes. It will give you include file tree with full pathes.

magras
  • 1,709
  • 21
  • 32
  • I have rebuilt each project individually. I also have that compiler option but I don't know exactly what that allows me to see. – Francisco Inácio Oct 16 '14 at 13:42
  • @Francisco, search for boost 1.55 headers in output window during compilation. I can not tell you where they are on your machine. Probably you can first filter them by "filesystem". – magras Oct 16 '14 at 17:09