3

在过去的 5 个小时里,我一直在尝试为 VlFeat 安装 python 包装器,它总是以:

cannot find -lboost_python-mt-py27

正如其他线程中所建议的,我更改了设置文件以要求它使用 python 2.7 boost 库。我系统上的python版本是2.7.6。这就是我得到 -lboost_python-mt-py27 而不是 -lboost_python-mt-py26 的原因

此外,我重新安装了 boost-python-dev。然而,这个问题并没有消失。我已经完全没有想法了,不知道还能做什么。

[编辑] 当我这样做时: ldconfig -p |grep libboost

我得到:

libboost_wserialization.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_wserialization.so.1.54.0
libboost_wave.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_wave.so.1.54.0
libboost_unit_test_framework.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.54.0
libboost_timer.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_timer.so.1.54.0
libboost_thread.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0
libboost_system.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0
libboost_signals.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_signals.so.1.54.0
libboost_serialization.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.54.0
libboost_regex.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.54.0
libboost_random.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_random.so.1.54.0
libboost_python-py34.so.1.55.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py34.so.1.55.0
libboost_python-py34.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py34.so.1.54.0
libboost_python-py34.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py34.so
libboost_python-py33.so.1.55.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py33.so.1.55.0
libboost_python-py27.so.1.55.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.55.0
libboost_python-py27.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.54.0
libboost_python-py27.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so
libboost_program_options.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.54.0
libboost_prg_exec_monitor.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_prg_exec_monitor.so.1.54.0
libboost_mpi.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_mpi.so.1.54.0
libboost_math_tr1l.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_math_tr1l.so.1.54.0
libboost_math_tr1f.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_math_tr1f.so.1.54.0
libboost_math_tr1.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_math_tr1.so.1.54.0
libboost_math_c99l.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_math_c99l.so.1.54.0
libboost_math_c99f.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_math_c99f.so.1.54.0
libboost_math_c99.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_math_c99.so.1.54.0
libboost_log_setup.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_log_setup.so.1.54.0
libboost_log.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_log.so.1.54.0
libboost_locale.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_locale.so.1.54.0
libboost_iostreams.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.54.0
libboost_iostreams.so.1.49.0 (libc6,x86-64) => /usr/lib/libboost_iostreams.so.1.49.0
libboost_graph_parallel.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_graph_parallel.so.1.54.0
libboost_graph.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_graph.so.1.54.0
libboost_filesystem.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.54.0
libboost_date_time.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.54.0
libboost_date_time.so.1.53.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.53.0
libboost_date_time.so.1.49.0 (libc6,x86-64) => /usr/lib/libboost_date_time.so.1.49.0
libboost_context.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_context.so.1.54.0
libboost_chrono.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.54.0
libboost_atomic.so.1.54.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_atomic.so.1.54.0

因此,它寻找的“mt”版本似乎不存在。我在我的 linux mint 系统上看不到任何安装候选者。

[编辑 2]:我通过链接到标准 boost 库使其工作,但想知道如何让它与多线程版本一起工作!

4

1 回答 1

4

在 Linux 上,从Boost v1.40.0 开始

构建系统

类 Unix 环境中库的默认命名现在符合系统约定,并且不包括各种装饰。

装饰是这样的标签:

-mt:该库是在启用多线程支持的情况下构建的。

-d:对影响库与其他编译代码的互操作性的细节进行编码。...

Linux 和 Windows 上的 Boost 库通常都是在 MT 模式下构建的,但只有在 Windows 上才能获得 -mt 后缀(例如,查看BOOST 库在 multithreading-aware mode)。

所以你链接的想法boost_python-mt-py27应该是安全的(不幸的是我不知道如何区分线程感知库和常规库)。

于 2015-02-16T14:54:49.920 回答