Я пытаюсь скомпилировать и установить Pistache на компьютере CentOS 7, следуя их инструкциям.
Это пакет, для которого требуется C++ 11, поэтому, поскольку пакет инструментов разработки в CentOS 7 устанавливает старую версию gcc (4.8.3), которая не поддерживает функции C++ 11, я установил devtoolset-7 и включил его с помощью scl enable devtoolset-7 bash
. Похоже, это работает правильно, так как gcc --version
отображает gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
.
Однако, когда я пытаюсь make
исходники Pistache, я получаю эту ошибку компиляции:
/root/compiler_installation_script/pistache/src/server/router.cc:102:45: error: no matching function for call to ‘regex_replace(const string&, std::regex&, const char [2])’
SegmentTreeNode::multiple_slash, "/");
^
/root/compiler_installation_script/pistache/src/server/router.cc:102:45: note: candidates are:
In file included from /usr/include/c++/4.8.2/regex:62:0,
Если я не понимаю, это, кажется, указывает на то, что мой компилятор использует устаревшие заголовочные файлы C++, совместимые с gcc 4.8.3, что приводит к ошибке. Как я могу это исправить?
Примечание: я уверен, что проблема не в самом исходном коде Pistache, так как я успешно скомпилировал его на других машинах, включая вчерашнюю свежую машину CentOS 7.