[pgrouting-users] Linking .cpp defined functions
Sylvain Housseman
hsylvio at gmail.com
Wed Jun 27 06:46:25 PDT 2012
Hi,
I am trying to add a function: 1-to-many dijkstra shortest path.
Thus I downloaded the last git and added a folder named 1toNsp in
"extra", which contains tomanysp.h, tomanysp.c and boost_wrapper_tomany.cpp.
These files are highly inspired from the dijkstra.h, dijkstra.c and
boost_wrapper.cpp files that are in the "core" directory.
-actually for now it's mainly a copy/paste of them-
I also created a .sql in extra/1toNsp/sql to define the function
onetomany_dijkstra_shortest_path(text, int, int array, boolean ,boolean).
I checked if this function exists by returning the distance between
source and the first target only, using boost_dijkstra; this works well \o/.
Now I want the (static int compute_tomany_shortest_path(char* sql, int
start_vertex,
int *end_vertices, int nb_targets,
bool directed,
bool has_reverse_cost,
path_element_t **path, int
*path_count)) function to call a function defined in
boost_dijkstra_tomany.cpp (named boost_dijkstra_tomany(...)).
Problem is that when I call
routing=> SELECT * FROM onetomany_dijkstra_sp('SELECT gid AS id,
source::int4,
target::int4, length::double precision AS
cost,length::double precision
AS reverse_cost FROM ways', 3, '{7,18,179}', true, true);
I get
ERROR: could not load library
"/usr/lib/postgresql/9.1/lib/librouting_tomanysp.so":
/usr/lib/postgresql/9.1/lib/librouting_tomanysp.so: undefined symbol:
boost_dijkstra_tomany
This function (int boost_dijkstra_tomany(......)) is declared in
tomanysp.h and called from tomanysp.c; while it is defined in
boost_wrapper_tomany.cpp (which #includes "tomanysp.h"); once again it
looks the same as what is done with dijkstra.h, dijkstra.c and
boost_wrapper.cpp.
my /extra/1toNsp/src/CMakeLists.txt is :
SET(LIBRARY_OUTPUT_PATH ../../../lib/)*
* ADD_LIBRARY(routing_tomany SHARED boost_wrapper_tomany.cpp
tomanysp.c tomanysp.h)
INSTALL(TARGETS routing_tomany DESTINATION ${LIBRARY_INSTALL_PATH})*
*Could someone tell me what I am missing?
--------------
Using postgresql 9.1 with ubuntu 11.10.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20120627/84b4d313/attachment.html>
More information about the Pgrouting-users
mailing list