How do I include Boost libraries?

49,888

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:

  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.

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:

  1. Boost library - c:\boost\boost_1_58_0 (run booststrap.bat and b2 as administrator).
  2. Add strings $(THIRD_PARTY)\boost\boost_1_58_0\include and $(THIRD_PARTY)\boost\boost_1_58_0\ to VC++ DirectoriesInclude Directories
Share:
49,888

Related videos on Youtube

Peter
Author by

Peter

Updated on July 09, 2022

Comments

  • Peter
    Peter almost 2 years

    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.

  • Stav Bodik
    Stav Bodik over 6 years
    Unfortunately after running the build steps I have no include folder !?