为 Open Street Routing Machine 安装线程构建块

Installing Threading Building Blocks for Open Street Routing Machine

我正在尝试在 RaspberryPi 2 运行 Raspbian 上构建开放式街道路由机。但是,它需要 Threading Building Blocks 库。我已经尝试了几个 apt-get 命令,但它一直告诉我它找不到存储库。具体来说,它说:

Package libtbb-dev is not available,but is refered to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libtbb-dev' has no installation candidate. 

我终于崩溃了,下载了 TBB 源并构建了它。据我所知,线程构建块已成功构建,但在尝试构建 OSRM 时,我仍然收到无法找到 TBB 库的错误。我已经尝试将构建的 TBB 目录复制到我认为 OSRM 正在寻找它们的地方(“/opt/intel/tbb”,“/usr/include”),但没有任何效果。

有人知道我可能做错了什么吗?

编辑:这是我在尝试构建 OSRM 时收到的错误:

ERROR: Intel TBB NOT found!
-- Looked for Threading Building Blocks in     /opt/intel/tbb;/usr/local/include;/usr/include
CMake Error at cmake/FindTBB.cmake:272 (message):
  Could NOT find TBB library.
Call Stack (most recent call first):
  CMakeLists.txt:191 (find_package)

TBB makefile 不支持系统范围的安装。它既不将文件放在 /opt 中,也不将文件放在 /usr 中。这通常由英特尔 Composer/Compiler/Parallel Studio 安装程序(在 /opt/intel 中)或 Linux 发行版本身(在 /usr 中)完成。但是您的发行版似乎没有提供用于安装的 tbb 包。

因此,如果您想使用自己编译的 TBB 二进制文件,请转到 $TBBROOT/build/linux*_release/ 目录和 source tbbvars.sh 脚本,以便在编译你的程序之前设置你的环境(你将能够编译 TBB 示例):

$source ./tbbvars.sh

$. ./tbbvars.sh

(注:直接执行什么都没有,因为不会修改你的环境)

不过,CMake 的 FindTBB 模块可能会愚蠢到仍然报告找不到 TBB,因为 TBB 并不正式支持 CMake。在这种情况下,您可能需要修复 FindTBB 模块以查看 TBB 路径的环境变量,或者通过复制共享库和包含文件到 CMake 期望它们所在的位置来手动执行类似系统范围的安装.

/opt/intel/tbb 中的文件布局如下(modified/shortened ls -R 输出):

/opt/intel/tbb/:
/opt/intel/tbb/include:
#copy tbb includes here
/opt/intel/tbb/include/tbb:
*.h
/opt/intel/tbb/include/tbb/compat:
*.h
/opt/intel/tbb/include/tbb/internal:
*.h
/opt/intel/tbb/include/tbb/machine:
*.h
/opt/intel/tbb/lib:
/opt/intel/tbb/lib/ia32_lin:
/opt/intel/tbb/lib/ia32_lin/gcc4.1:
/opt/intel/tbb/lib/ia32_lin/gcc4.1/irml:
/opt/intel/tbb/lib/ia32_lin/gcc4.4:
/opt/intel/tbb/lib/ia32_lin/gcc4.4/irml:
/opt/intel/tbb/lib/intel64_lin:
/opt/intel/tbb/lib/intel64_lin/gcc4.1:
/opt/intel/tbb/lib/intel64_lin/gcc4.1/irml:
/opt/intel/tbb/lib/intel64_lin/gcc4.4:
irml/                    libtbbmalloc_proxy_debug.so    libtbbmalloc.so.2          libtbb.so
libtbb_debug.so          libtbbmalloc_proxy_debug.so.2  libtbb_preview_debug.so    libtbb.so.2
libtbb_debug.so.2        libtbbmalloc_proxy.so          libtbb_preview_debug.so.2
libtbbmalloc_debug.so    libtbbmalloc_proxy.so.2        libtbb_preview.so
libtbbmalloc_debug.so.2  libtbbmalloc.so                libtbb_preview.so.2