Ошибка компиляции с мезосферой RENDLER

После попытки скомпилировать RENDLER Месосферы в C++ с make allЯ получаю следующую ошибку:

$ make all
g++  -g -O2 -pthread -o rendler rendler.cpp -lmesos -lpthread -lprotobuf
In file included from /usr/local/include/stout/stringify.hpp:26:0,
                 from /usr/local/include/stout/bytes.hpp:26,
                 from /usr/local/include/mesos/resources.hpp:29,
                 from rendler.cpp:30:
/usr/local/include/stout/hashmap.hpp:43:32: error: expected ‘)’ before ‘<’ token
   hashmap(std::initializer_list<std::pair<Key, Value>> list)
                                ^
rendler.cpp:345:1: error: expected ‘}’ at end of input
 }
 ^
In file included from /usr/local/include/stout/stringify.hpp:26:0,
                 from /usr/local/include/stout/bytes.hpp:26,
                 from /usr/local/include/mesos/resources.hpp:29,
                 from rendler.cpp:30:
/usr/local/include/stout/hashmap.hpp:40:14: error: expected unqualified-id at end of input
   hashmap() {}
              ^
make: *** [rendler] Error 1

У меня установлены все перечисленные зависимости, а также соответствующие сторонние библиотеки в правильном пути включения. Я получаю ту же ошибку при попытке скомпилировать пример платформы в mesos/src/examples каталог. Что вызывает эту ошибку?

1 ответ

Этот кусок кода

     std::initializer_list<std::pair<Key, Value>>
  // ^^^^^^^^^^^^^^^^^^^^^

вызывает ошибку

 error: expected ‘)’ before ‘<’ token

для pre stanadard C++11 компиляторов, так как std::initializer_list был впервые представлен с ++11.

Большинство современных компиляторов, таких как GCC, позволяют устанавливать -std=c++11 вариант, который должен исправить вашу ошибку.

Другие вопросы по тегам