Question

I have downloaded the pcl-1.7.1 release from github and have tried to build the code using

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

The cmake command runs successful and and writes this concerning boost

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

The problem comes with the make command which after some time returns the following error:

    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

Is it correct that this is a linking problem? can it be the boost installation that causes the problem?

I have built the boost library from source (version 1.55.0) by executing the following inside the boost_1_55_0 directory

sudo ./bootstrap
sudo ./b2 install

The boost is then installed in /usr/local/include and /usr/local/lib

I use 32 bit Ubuntu 12.04

Was it helpful?

Solution

I found some libboost files in /usr/lib which I forgot to delete from the last install of boost (as pointed out by @D.J.Duff). Removing those files and intstalling boost again fixed the problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top