Я борюсь с этим со вчерашнего дня. Я пытаюсь установить Osrm
библиотека маршрутизации, которая обеспечивает направления маршрутов по улицам между двумя точками широты и долготы. Я клонировал репозиторий OSRM и выполнил основные инструкции по установке.
mkdir -p build
cd build
>>> cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
sudo cmake --build . --target install
Когда я бегу cmake ..
Я получаю эти ошибки о
CMake Warning at /usr/local/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/local/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/local/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:482 (find_package)
Библиотека по-прежнему компилируется просто отлично. но когда я запускаю первую команду конфигурации для библиотеки Osrm, я получаю эту ошибку:
osrm-extract: /opt/copy-client/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by osrm-extract)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by osrm-extract)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by osrm-extract)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by osrm-extract)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/libboost_program_options.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libboost_program_options.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/libboost_regex.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libboost_regex.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/libboost_filesystem.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libboost_filesystem.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libboost_iostreams.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libboost_system.so.1.64.0)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/libstxxl.so.1)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/libstxxl.so.1)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/libstxxl.so.1)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libtbb.so.2)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicui18n.so.55)
osrm-extract: /opt/copy-client/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55)
Так что это проблема. Сейчас я гуглю эти ошибки, но ни одно из решений не представляется актуальным для моей ситуации.
Во-первых, у меня есть cmake
версия 3.6.2 установлена. Другие посты предлагали обновить cmake до версии к северу от 3.5.
у меня тоже есть boost
установлена версия 1.64.0, которая является самой новой версией. Похоже, что cmake находит эту версию, когда выполняет шаг настройки.
Наконец, я также использую gcc
,g++
версия 5.4.1. В других публикациях говорилось об обновлении до версии 4.9 gcc, но на самом деле я тоже к северу от этой версии.
Поэтому я посмотрел на сообщение об ошибке на этапе настройки, о котором я упоминал выше:
(_Boost_COMPONENT_DEPENDENCIES)
/usr/local/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:482 (find_package)
Я копался в CMakeLists.txt
строка 482. Эта строка говорит
find_package(Boost 1.54 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
Таким образом, единственное, что я могу видеть, это то, что пакет Osrm ищет повышение 1.54. Теперь, так как у меня версия 1.64.0, не должен ли Cmake принимать новейшую версию? Не уверены, почему эти обязательные компоненты?
У кого-нибудь есть предложения?
Задача ещё не решена.
Других решений пока нет …