c++ - 从源代码构建 pcl-1.7.1 时链接到 boost 库

标签 c++ boost point-cloud-library

我已经从 github 下载了 pcl-1.7.1 版本并尝试使用

cd PCL-1.6.0 && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. 
make
sudo make install

cmake 命令运行成功,并写入有关 boost 的信息

-- Boost version: 1.55.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
--   date_time
--   iostreams

问题来自于 make 命令,它在一段时间后返回以下错误:

    Scanning dependencies of target pcl_convert_pcd_ascii_binary
    [ 12%] Building CXX object io/tools/CMakeFiles/pcl_convert_pcd_ascii_binary.dir/convert_pcd_ascii_binary.cpp.o
    Linking CXX executable ../../bin/pcl_convert_pcd_ascii_binary
    ../../lib/libpcl_common.so.1.7.1: error: undefined reference to 'boost::thread::join_noexcept()'
    ../../lib/libpcl_common.so.1.7.1: error: undefined reference to 'boost::thread::start_thread_noexcept()'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::detail::permissions(boost::filesystem::path const&, boost::filesystem::perms, boost::system::error_code*)'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::path::extension() const'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::detail::dir_itr_close(void*&, void*&)'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::path::stem() const'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, boost::system::error_code*)'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::filesystem::directory_entry::m_get_status(boost::system::error_code*) const'
    ../../lib/libpcl_io.so.1.7.1: error: undefined reference to 'boost::thread::do_try_join_until_noexcept(timespec const&, bool&)'
    collect2: ld returned 1 exit status
    make[2]: *** [bin/pcl_convert_pcd_ascii_binary] Error 1
    make[1]: *** [io/tools/CMakeFiles/pcl_convert_pcd_ascii_binary.dir/all] Error 2
    make: *** [all] Error 2

这是一个链接问题是否正确?会不会是 boost 安装导致的问题?

我通过在 boost_1_55_0 目录中执行以下命令从源代码(版本 1.55.0)构建了 boost 库

sudo ./bootstrap
sudo ./b2 install

然后将 boost 安装在/usr/local/include 和/usr/local/lib

我使用的是 32 位 Ubuntu 12.04

最佳答案

我在/usr/lib 中发现了一些 libboost 文件,我忘记从上次安装的 boost 中删除它们(正如 @D.J.Duff 所指出的)。删除这些文件并再次安装 boost 解决了这个问题。

关于c++ - 从源代码构建 pcl-1.7.1 时链接到 boost 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22363538/

相关文章:

c++ - 我为类编写了这个汉明编码代码。为什么这么慢?

c++ - 如何使用 boost::program_options 创建选项别名?

c++ - 在 C 中包含 C++ 库

point-cloud-library - 在 PCL 可视化工具中的点旁边添加文本

opencv - 了解点云库中的立体声匹配

c++ - 这是一个有效的向下转换吗

c++ - 为什么在使用带有接口(interface)指针的多态行为时没有调用析构函数?

c++ - 在 VC6 中使用 VS 2005 库时出现编译错误

c++ - 为使用 class_<> 导出的类绕过 to_python 注册表?

opencv - PCL、OpenCV和flann冲突