Boost在编译点云库时出现问题 [英] Boost problems when compiling Point Cloud Library

查看:334
本文介绍了Boost在编译点云库时出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在OSX 10.6.8上从源代码编译点云库,我仍然使用Boost库来运行相同的错误:

I am trying to compile the Point Cloud Library from source on OSX 10.6.8, and I keep running up against the same error with the Boost libraries:

! make
Linking CXX shared library ../lib/libpcl_common.dylib
Undefined symbols:
  "boost::thread::start_thread_noexcept()", referenced from:
  boost::thread::thread<boost::_bi::bind_t<void, boost::_mfi::mf0<void, 

pcl::TimeTrigger>, boost::_bi::list1<boost::_bi::value<pcl::TimeTrigger*> > > >(boost::_bi::bind_t<void, boost::_mfi::mf0<void, pcl::TimeTrigger>, boost::_bi::list1<boost::_bi::value<pcl::TimeTrigger*> > >, boost::disable_if_c<boost::thread_detail::is_convertible<boost::_bi::bind_t<void, boost::_mfi::mf0<void, pcl::TimeTrigger>, boost::_bi::list1<boost::_bi::value<pcl::TimeTrigger*> > >&, boost::detail::thread_move_t<boost::_bi::bind_t<void, boost::_mfi::mf0<void, pcl::TimeTrigger>, boost::_bi::list1<boost::_bi::value<pcl::TimeTrigger*> > > > >::value, boost::thread::dummy*>::type)in time_trigger.cpp.o
  "boost::thread::join_noexcept()", referenced from:
      pcl::TimeTrigger::~TimeTrigger()in time_trigger.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [lib/libpcl_common.1.7.0.dylib] Error 1
make[1]: *** [common/CMakeFiles/pcl_common.dir/all] Error 2
make: *** [all] Error 2

我已经浏览过CMake选项,并且没有一个似乎引用Boost库我发现我的boost库文件位于 / usr / lib / ;例如 /usr/lib/libboost_date_time-mt.dylib

I have looked through the CMake options, and none of them seem to reference the Boost library with advanced settings activated, I find that my boost library files are located in /usr/lib/; e.g. /usr/lib/libboost_date_time-mt.dylib:

我该如何解决这个问题?

What can I do to solve this problem? And what can I do in the future to help prevent similar problems occurring again?

UPDATE 我从头重建和编译Boost,仍然得到相同的错误。这似乎很奇怪,因为Boost是从头开始编译的,PCL也是。唯一可以注意的是在CMake输出中,我得到这个奇怪的冲突消息:

UPDATE I have rebuilt and compiled Boost from scratch, and am still getting the same error. This seems very odd, as Boost is compiled from scratch and PCL is too. The only thing which could be of note is in the CMake output, I get this strange conflicting message:

-- checking for module 'eigen3'
--   package 'eigen3' not found
-- Eigen found (include: /usr/local/include/eigen3)


推荐答案

这是一个老版本的boost问题吗?

Is this an "older version of boost" problem?

也许链接器正在寻找的函数只存在于比你建立和安装的更新版本的boost。

Perhaps the linker is looking for functions that only exist in a newer version of boost than the one you have built and installed.

仔细检查升压版本是什么版本推荐的点云库,以及你有什么版本的提升。

Double check what version of boost is recommended by the Point Cloud Library, and what version of boost you have.

这篇关于Boost在编译点云库时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆