Hello,
I encounter some problems when porting an application using boost from
Windows to Linux.
I work with Ubuntu,
I use codeblocks as a compiling environment.
The boost library I use is boost_1_38 containing
boost_1_38/boost/property_map.hpp
boost_1_38/boost/config.hpp
boost_1_38/boost/graph/adjacency_list.hpp
boost_1_38/boost/graph/graph_utility.hpp.
I believe the boost library is compatible with Windows and Linux.
The compiler reports the following errror:
.../structure_learning/src/graph_tools/GraphPDAG.cpp:295
erreur: conversion from
"boost::adj_list_edge_property_map,
boost::edge_bundle_t"
to non-scalar type "boost::no_edge_bundle" requested.
Then, it finds a second error:
.../structure_learning/src/graph_tools/GraphPDAG.cpp:296
erreur:
"struct boost::no_edge_bundle" has no member named "ambiguous".
Finally, the third error is (after verbose comments which I can not copy
here):
GraphPDAG.cpp:296: instantiated from here:
boost_1_38/boost/graph/adjacency_list.hpp:463:erreur:invalid
initialisation of reference of type
"boost::no_edge_bundle&" from expression of type
"boost::detail::error_property_not_found".
Do you have any idea why this code is correct with Windows but not with
Linux ?
I would have thought that the boost C++ library is compatible with any
system.
Thank you in advance for considering my questions.
Best regards,
C.S.
//==============================================================================
void PDAG::putWeightPDAG(slBayesianNetwork* bn, slEdge e, int w)
{
unsigned int a, b;
this->pBN = bn;
this->getEdgeNodesIndex(e, a, b);
this->putWeightPDAG(a, b, w);
slGraph& graph = bn->get_graph();
property_map::type
weightMap = get(edge_weight, graph);
line 295 >>>>> edge_bundle_type<slGraph>::type ambiguousTypeMap =
get(edge_bundle, graph);
line 296 >>>>> graph[e].ambiguous = true;
}