Я пытаюсь использовать расширение read_graphviz, чтобы вытащить файл .vt graphviz в Boost Grpah. Вот мой пример. Я не могу его скомпилировать. Я отправил сообщение об ошибке g ++ после кода, но мне пришлось, но это было коротко, слишком много времени для публикации здесь без значительного повторного форматирования.Невозможно скомпилировать код с помощью Boost graphviz.hpp
Документация Библиотека graphviz.hpp слишком короткая, чтобы вести меня в правильном направлении. У кого-нибудь есть мысли?
#include <iostream>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/property_map.hpp>
#include <boost/graph/graphviz.hpp>
int main(int argc, char* argv[])
{
assert(argc == 2);
std::ifstream dotFile(argv[1], std::ifstream::in);
typedef boost::adjacency_list<> Graph;
Graph graph(17);
boost::dynamic_properties properties;
boost::property_map< Graph, boost::vertex_name_t >::type name = get(boost::vertex_name, graph);
properties.property("node_id", name);
bool readResult;
readResult = read_graphviz(dotFile, graph, properties);
return 0;
g++ -Wall -c -o graphvizTest.o graphvizTest.cpp
/usr/include/boost/dynamic_property_map.hpp: In member function
std::string boost::detail::dynamic_property_map_adaptor<PropertyMap>::get_string(const boost::any&)
[with PropertyMap =
boost::vec_adj_list_vertex_property_map<
boost::adjacency_list<
boost::vecS, boost::vecS, boost::directedS,
boost::no_property, boost::no_property,
boost::no_property, boost::listS
>,
boost::adjacency_list<
boost::vecS, boost::vecS, boost::directedS, boost::no_property,
boost::no_property, boost::no_property, boost::listS
>*,
boost::detail::error_property_not_found,
boost::detail::error_property_not_found&,
boost::vertex_name_t
>
]':
graphvizTest.cpp:29: instantiated from here
/usr/include/boost/dynamic_property_map.hpp:196: error: no match for 'operator<<' in 'out << boost::get
[with
PropertyMap =
boost::vec_adj_list_vertex_property_map<
boost::adjacency_list<
boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property,
boost::no_property, boost::listS
>,
boost::adjacency_list<
boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property,
boost::no_property, boost::listS
>*,
boost::detail::error_property_not_found,
boost::detail::error_property_not_found&,
boost::vertex_name_t
>,
Reference = boost::detail::error_property_not_found&, K = long unsigned int
]
...
Вы не указали строку 29 graphvizTest.cpp .... –
Я очистил код, когда отправил вопрос и удалил пару строк. Строка, вызывающая ошибку, является второй из последней, вызов read_graphviz. –