Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I include Boost libraries?

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.

like image 279
Peter Avatar asked Apr 27 '15 10:04

Peter


3 Answers

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".

like image 100
Ferruccio Avatar answered Oct 17 '22 11:10

Ferruccio


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
like image 33
Michael Popovich Avatar answered Oct 17 '22 12:10

Michael Popovich


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.

like image 28
kvorobiev Avatar answered Oct 17 '22 10:10

kvorobiev