安装C ++ 14 OSRM路由应用程序时cmake查找依赖项的麻烦

时间:2017-05-10 21:28:12

标签: c++ gcc boost cmake osrm

我从昨天起就一直在努力解决这个问题。我正在尝试安装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在配置步骤时找到了这个版本。

最后,我还使用了gccg++版本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接受最新版本?不确定为什么需要这些组件?

有人有任何建议吗?

0 个答案:

没有答案