How do I include Boost libraries?
Solution 1
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:
- Go to Project properties → C/C++ → General → Additional Include Directories, and add a path to the
boost
library root (in my caseC:\Program Files (x86)\Boost_1_53
). - 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 properties → Linker → General → Additional Libraries Directories.
Solution 2
In Visual Studio 2012, right-click on your project and select "Properties".
In the properties dialog, select "Configuration Properties" and then "VC++ Directories".
You will need to add the Boost include path to the "Include Directories" list.
If you're using all header-only libraries then you're done. Otherwise, you will need to add the Boost library path to "Library Directories".
Solution 3
For example:
- Boost library -
c:\boost\boost_1_58_0
(runbooststrap.bat
andb2
as administrator). - Add strings
$(THIRD_PARTY)\boost\boost_1_58_0\include
and$(THIRD_PARTY)\boost\boost_1_58_0\
to VC++ Directories → Include Directories
Related videos on Youtube
Peter
Updated on July 09, 2022Comments
-
Peter almost 2 years
I'm trying to incorporate the Boost libraries into my program, specifically
lexical_cast
andgeometry
. 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.
-
Stav Bodik over 6 yearsUnfortunately after running the build steps I have no include folder !?