私は昨日からこれに取り組んでいます。Osrm
緯度/経度の 2 つのポイント間のストリート ルーティング ルート案内を提供するルーティング ライブラリをインストールしようとしています。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 も使用しています。他の投稿では gcc バージョン 4.9 へのアップグレードについて話していましたが、実際には私もそのバージョンの北にいます。
そこで、上記の構成手順でエラー メッセージを調べました。
(_Boost_COMPONENT_DEPENDENCIES)
/usr/local/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:482 (find_package)
私は482行目を掘り下げましたCMakeLists.txt
。その行は言う
find_package(Boost 1.54 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
したがって、私が見ることができる唯一の考えは、Osrm パッケージがブースト 1.54 を探しているということです。私はバージョン1.64.0を持っているので、Cmakeは最新バージョンを受け入れるべきではありませんか? これらのコンポーネントが必要な理由がわからない?
誰にも提案はありますか?