我从昨天起就一直在努力解决这个问题。我正在尝试安装Osrm
路由库,该库提供两个纬度/长点之间的街道路由方向。我克隆了OSRM repo并运行了基本的安装说明。
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)
我挖了CMakeLists.txt
行482.那条线说
find_package(Boost 1.54 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
所以我唯一能想到的是Osrm软件包正在寻找1.54的提升。既然我有版本1.64.0应该不是Cmake接受最新版本?不确定为什么需要这些组件?
有人有任何建议吗?