为 vlfeat 安装 python 包装器

installing the python wrappers for vlfeat

过去 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 库使它工作,但想知道如何让它与多线程版本一起工作!

在 Linux,来自 Boost v1.40.0

Build System

The default naming of libraries in Unix-like environment now matches system conventions, and does not include various decorations.

装饰品是这样的标签:

-mt: the library was built with multithreading support enabled.

-d: encodes details that affect the library's interoperability with other compiled code. ...

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

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