Problems installing Time Dependent Routing code

Open
#448 8 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cmake, postgresql

Research direction

The issue is a compilation error in extra/driving_distance/src/boost_drivedist.cpp related to Boost adjacency_list and edge_weight_t. Start by examining the CMake configuration and Boost version compatibility. Check the pgRouting build instructions and the specific Boost graph library usage. The last comment was over 7 years ago, so the codebase and dependencies have likely changed significantly. Look for updated build scripts or similar issues in the repository to understand current build practices.

Written by the indexing model from the issue text.

Description

Functionality Request Needs Funding Proposal

I am following instructions here to installing time dependent routing. When I attempt to compile the code with the Time Dependent Routing in it on Ubuntu 14.04, I get a series of errors:

Building CXX object extra/driving_distance/src/CMakeFiles/routing_dd.dir/boost_drivedist.o In file included from /usr/include/boost/graph/adjacency_list.hpp:246:0, from /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp:25: /usr/include/boost/graph/detail/adjacency_list.hpp: In instantiation of ‘struct boost::detail::adj_list_any_edge_pmap::bind_<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, Vertex, Edge>, Edge, boost::edge_weight_t>’: /usr/include/boost/graph/detail/adjacency_list.hpp:2684:12: required from ‘struct boost::detail::adj_list_choose_edge_pmap<boost::edge_weight_t, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, Vertex, Edge>, Edge>’ /usr/include/boost/graph/detail/adjacency_list.hpp:2689:14: required from ‘struct boost::detail::adj_list_edge_property_selector::bind_<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, Vertex, Edge>, Edge, boost::edge_weight_t>’ /usr/include/boost/graph/properties.hpp:208:12: required from ‘struct boost::detail::edge_property_map<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, Vertex, Edge>, boost::edge_weight_t>’ /usr/include/boost/graph/properties.hpp:228:10: required from ‘struct boost::property_map<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, Vertex, Edge>, boost::edge_weight_t>’ /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp:87:39: required from here /usr/include/boost/graph/detail/adjacency_list.hpp:2652:29: error: forming reference to void typedef value_type& reference; ^ /usr/include/boost/graph/detail/adjacency_list.hpp:2653:35: error: forming reference to void typedef const value_type& const_reference; ^ /usr/include/boost/graph/detail/adjacency_list.hpp:2657:61: error: forming reference to void typename Graph::vertex_descriptor,Property,Tag> type; ^ /usr/include/boost/graph/detail/adjacency_list.hpp:2660:68: error: forming reference to void typename Graph::vertex_descriptor,const Property, Tag> const_type; ^ /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp: In function ‘int boost_dijkstra_dist(edge_t*, unsigned int, int, double, bool, bool, path_element_t**, int*, char**)’: /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp:88:27: error: no matching function for call to ‘get(boost::edge_weight_t, graph_t&)’ get(edge_weight, graph); ^ /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp:88:27: note: candidates are: In file included from /usr/include/boost/graph/adjacency_list.hpp:36:0, from /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp:25: /usr/include/boost/property_map/property_map.hpp:179:19: note: template<class T> const T& get(const T*, std::ptrdiff_t) inline const T& get(const T* pa, std::ptrdiff_t k) { return pa[k]; } ^ /usr/include/boost/property_map/property_map.hpp:179:19: note: template argument deduction/substitution failed: /home/ubuntu/workspace/pgrouting/extra/driving_distance/src/boost_drivedist.cpp:88:27: note: mismatched types ‘const T*’ and ‘boost::edge_weight_t’ get(edge_weight, graph);

I wondered if this was due to the boost version (1.54), or the CGAL version (10.0.1). I have tried following the instructions here and using the pgrouting4w fork, but that gave similar errors.

Anyone know how this library can be built? Since it hasn't been updated since 2011, the build systems and all the libraries must have changed so I assume it's something to do with that.

Dominant language
C++
Stars
1.4k
Forks
397
Avg merge
2d 16h
Merged PRs (30d)
8

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pgRouting/pgrouting

All issues in pgRouting/pgrouting

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.