我一直在尝试为VlFeat安装最近5个小时的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库使其工作,但想知道如何使用多线程版本!
答案 0 :(得分:4)
在Linux上,来自Boost v1.40.0:
构建系统
类Unix环境中库的默认命名现在匹配 系统约定,不包括各种装饰。
装饰品是这样的标签:
-mt:该库是在启用多线程支持的情况下构建的。
-d:对影响库与其他已编译代码的互操作性的详细信息进行编码。 ...
在Linux和Windows上,Boost库通常都是以MT模式构建的,但只有在Windows上才能获得-mt后缀(例如,请查看BOOST libraries in multithreading-aware mode)。
因此,您与boost_python-mt-py27
链接的想法应该是安全的(遗憾的是,我不知道如何将线程感知库与常规库区分开来。)