После попытки скомпилировать 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
каталог. Что вызывает эту ошибку?
Этот кусок кода
std::initializer_list<std::pair<Key, Value>>
// ^^^^^^^^^^^^^^^^^^^^^
вызывает ошибку
error: expected ‘)’ before ‘<’ token
для pre stanadard c ++ 11 компиляторов, так как std::initializer_list
был впервые представлен с ++ 11.
Большинство современных компиляторов, таких как GCC, позволяют устанавливать -std=c++11
вариант, который должен исправить вашу ошибку.