Missing library paths for custom Boost builds

Builds with custom Boost need -L/path/to/Boost

Yes

  • If you answered yes above, did you use the exact same compiler to build graph-tool, boost-python and Python?

Yes (Python built by distribution but used same compiler version)

Compilation fails during linking of libgraph_tool_centrality.la. -lboost_coroutine -lboost_context were supplied to the linker but not the critical -L/path/to/boost given to configure's --with-boost argument. The following patch fixes the problem for me:

diff --git a/configure.ac b/configure.ac
index dabe3b99..46a37d6d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -365,7 +365,7 @@ AC_SUBST(CXXFLAGS)
 AC_SUBST(MOD_CPPFLAGS)
 
 # extra LIBADD flags for submodules
-[MOD_LIBADD="${PYTHON_LIBS} ${BOOST_LIBS} ${EXPAT_LIBS} ${EXPAT_LDFLAGS} ${OPENMP_LDFLAGS}"]
+[MOD_LIBADD="${PYTHON_LIBS} ${BOOST_LDFLAGS} ${BOOST_LIBS} ${EXPAT_LIBS} ${EXPAT_LDFLAGS} ${OPENMP_LDFLAGS}"]

but I am not sure this is the right thing to do. config.logconfigure_output

  • A minimal and self-contained example that shows the problem.
  • Your operating system.

Ubuntu 18.10

  • The Python version you are using.

3.7.1

  • If you compiled graph-tool manually: Your compiler version, as well as the version of Boost being used.

gcc 8.2.0 and Boost 1.68.0

  • If you are reporting a compilation error, please provide the entire ./configure output, as well as the entire contents of the config.log file and the entire compilation output.
make
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/build-aux/missing autoheader)
rm -f stamp-h1
touch config.h.in
cd . && /bin/bash ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive
make[1]: Entering directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal'
Making all in src
make[2]: Entering directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/src'
Making all in graph
make[3]: Entering directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/src/graph'
Making all in centrality
make[4]: Entering directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/src/graph/centrality'
  CXX      graph_betweenness.lo
  CXX      graph_centrality_bind.lo
  CXX      graph_closeness.lo
  CXX      graph_eigentrust.lo
  CXX      graph_eigenvector.lo
  CXX      graph_hits.lo
  CXX      graph_katz.lo
  CXX      graph_pagerank.lo
  CXX      graph_trust_transitivity.lo
  CXXLD    libgraph_tool_centrality.la
/usr/bin/ld: cannot find -lboost_context
/usr/bin/ld: cannot find -lboost_coroutine
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:512: libgraph_tool_centrality.la] Error 1
make[4]: Leaving directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/src/graph/centrality'
make[3]: *** [Makefile:810: all-recursive] Error 1
make[3]: Leaving directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/src/graph'
make[2]: *** [Makefile:423: all-recursive] Error 1
make[2]: Leaving directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal/src'
make[1]: *** [Makefile:595: all-recursive] Error 1
make[1]: Leaving directory '/media/jet/71c9e7fc-0208-49dd-89d0-6b357bdeec64/graph-tool.fix_with_cgal'
make: *** [Makefile:482: all] Error 2