Makefile can not find boost libraries installed by

2019-04-12 22:55发布

问题:

I just installed boost 1.42.0 from macports using sudo port install boost.

Everything worked fine. Now I have a project that I'm trying to build using a makefile. Everything builds fine until it comes to the file that needs the boost library.

It says:
src/graph.h:20:42: error: boost/graph/adjacency_list.hpp: No such file or directory

That file is actually located in two places:
/opt/local/include/boost/graph/adjacency_list.hpp
and
/opt/local/var/macports/software/boost/1.42.0_0/opt/local/include/boost/graph/adjacency_list.hpp

In the file src/graph.h where it's looking for boost/graph/adjacency_list.hpp, the include statement is here:
#include<boost/graph/adjacency_list.hpp>

How do I make this work?

回答1:

You need to tell the compiler the base directory where Boost is intalled. You can do that with the compiler's -I command line option:

g++ -I/opt/local/include ...


回答2:

Add one of these paths to your include path.

You can include the version using this include:

#include <boost/version.hpp>

which defines:

#define BOOST_VERSION 104200
#define BOOST_LIB_VERSION "1_42"

Use this to verify if your compiler is using the version you want it to use.