简体   繁体   English

编译Point Cloud Library时会出现问题

[英]Boost problems when compiling Point Cloud Library

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: 我正在尝试从OSX 10.6.8上的源代码编译Point Cloud Library,并且我继续遇到与Boost库相同的错误:

! 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

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/ ; 我查看了CMake选项,并且 没有一个看起来引用了 激活高级设置 的Boost库 ,我发现我的boost库文件位于/usr/lib/ ; eg /usr/lib/libboost_date_time-mt.dylib : 例如/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 I have rebuilt and compiled Boost from scratch, and am still getting the same error. 更新我从头开始重建和编译Boost,但仍然遇到同样的错误。 This seems very odd, as Boost is compiled from scratch and PCL is too. 这似乎很奇怪,因为Boost是从头开始编译的,而PCL也是如此。 The only thing which could be of note is in the CMake output, I get this strange conflicting message: 唯一值得注意的是在CMake输出中,我得到了这个奇怪的冲突消息:

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

Is this an "older version of boost" problem? 这是一个“老版本的提升”问题吗?

Perhaps the linker is looking for functions that only exist in a newer version of boost than the one you have built and installed. 也许链接器正在寻找仅存在于比您构建和安装的版本更新的boost版本中的函数。

Double check what version of boost is recommended by the Point Cloud Library, and what version of boost you have. 请仔细检查Point Cloud Library建议使用哪种版本的增强版,以及您拥有的增强版本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM