How do I include Boost libraries?

Peter picture Peter · Apr 27, 2015 · Viewed 41.4k times · Source

I'm trying to incorporate the Boost libraries into my program, specifically lexical_cast and geometry. I include them using #include"boost/boost/geometry.hpp" and #include"boost/boost/lexical_cast/lexical_cast_old.hpp".

When I run the code I get the fatal error "Cannot open include file: 'boost/geometry/geometry.hpp': No such file or directory" which leads me to another .hpp file in the Boost library which includes another library, but uses #include<...> instead of #include"...".

When I replace it for "..." the error for this one goes, but it is replaced with the next library included using #include<...> instead of #include"...".

I feel like this could lead me down a rabbit hole of replacing nearly all instances of #include<...> with #include"..." which would take ages. Is there a setting I can change or a piece of code I could include that would sort this out?

Or could I just get rid of all the other unnecessary libraries and change the ones I need (I know that, that would still be a lot as they seem to rely on each other).

I have Boost library version 1.58.0.

Answer

kvorobiev picture kvorobiev · Apr 27, 2015

First you should read about the difference between #include "filepath" and #include <filepath> here.

Personally, I'm working with Boost from Visual Studio as follows:

  1. Go to Project propertiesC/C++GeneralAdditional Include Directories, and add a path to the boost library root (in my case C:\Program Files (x86)\Boost_1_53).
  2. Include a .hpp file in your sources, like #include <boost/lexical_cast/lexical_cast_old.hpp>

If you're using non headers-only libraries you should also add path to Boost libraries in Project propertiesLinkerGeneralAdditional Libraries Directories.