Linker error to boost library when catkin_make
edward9503 opened this issue · comments
Shengzhi Wang commented
Hi,
I am using Ubuntu 20.04, ROS Noetic. When I tried to install Orocos by following the instructions in readme, and try the catkin_make_isolated --install, following error happened:
==> Processing plain cmake package: 'rtt'
==> Building with env: '/home/bmtsz/orocos/install_isolated/env.sh'
Makefile exists, skipping explicit cmake invocation...
==> make cmake_check_build_system in '/home/bmtsz/orocos/build_isolated/rtt/install'
==> make -j16 -l16 in '/home/bmtsz/orocos/build_isolated/rtt/install'
Use: make docapi dochtml docpdf to build the documentation.
[ 0%] Built target message
Consolidate compiler generated dependencies of target orocos-rtt-gnulinux_dynamic
[ 1%] Linking CXX shared library liborocos-rtt-gnulinux.so
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::extension() const':
/usr/include/boost/filesystem/path.hpp:585: undefined reference to `boost::filesystem::path::extension_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::stem() const':
/usr/include/boost/filesystem/path.hpp:584: undefined reference to `boost::filesystem::path::stem_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::has_root_directory() const':
/usr/include/boost/filesystem/path.hpp:594: undefined reference to `boost::filesystem::path::find_root_directory() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::parent_path() const':
/usr/include/boost/filesystem/path.hpp:581: undefined reference to `boost::filesystem::path::find_parent_path_size() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::parent_path() const':
/usr/include/boost/filesystem/path.hpp:581: undefined reference to `boost::filesystem::path::find_parent_path_size() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&, boost::filesystem::directory_options)':
/usr/include/boost/filesystem/directory.hpp:326: undefined reference to `boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, unsigned int, boost::system::error_code*)'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::directory_entry::status() const':
/usr/include/boost/filesystem/directory.hpp:131: undefined reference to `boost::filesystem::directory_entry::get_status(boost::system::error_code*) const'
/usr/bin/ld: /usr/include/boost/filesystem/directory.hpp:131: undefined reference to `boost::filesystem::directory_entry::get_status(boost::system::error_code*) const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/plugin/PluginLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::extension() const':
/usr/include/boost/filesystem/path.hpp:585: undefined reference to `boost::filesystem::path::extension_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::stem() const':
/usr/include/boost/filesystem/path.hpp:584: undefined reference to `boost::filesystem::path::stem_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::has_root_directory() const':
/usr/include/boost/filesystem/path.hpp:594: undefined reference to `boost::filesystem::path::find_root_directory() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::parent_path() const':
/usr/include/boost/filesystem/path.hpp:581: undefined reference to `boost::filesystem::path::find_parent_path_size() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&, boost::filesystem::directory_options)':
/usr/include/boost/filesystem/directory.hpp:326: undefined reference to `boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, unsigned int, boost::system::error_code*)'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::directory_entry::status() const':
/usr/include/boost/filesystem/directory.hpp:131: undefined reference to `boost::filesystem::directory_entry::get_status(boost::system::error_code*) const'
/usr/bin/ld: /usr/include/boost/filesystem/directory.hpp:131: undefined reference to `boost::filesystem::directory_entry::get_status(boost::system::error_code*) const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::has_root_directory() const':
/usr/include/boost/filesystem/path.hpp:594: undefined reference to `boost::filesystem::path::find_root_directory() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:594: undefined reference to `boost::filesystem::path::find_root_directory() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::parent_path() const':
/usr/include/boost/filesystem/path.hpp:581: undefined reference to `boost::filesystem::path::find_parent_path_size() const'
/usr/bin/ld: CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/deployment/ComponentLoader.cpp.o: in function `boost::filesystem::path::filename() const':
/usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
/usr/bin/ld: /usr/include/boost/filesystem/path.hpp:583: undefined reference to `boost::filesystem::path::filename_v3() const'
collect2: error: ld returned 1 exit status
make[2]: *** [rtt/CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/build.make:1671: rtt/liborocos-rtt-gnulinux.so.2.9.0] Error 1
make[1]: *** [CMakeFiles/Makefile2:896: rtt/CMakeFiles/orocos-rtt-gnulinux_dynamic.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
<== Failed to process package 'rtt':
Command '['/home/bmtsz/orocos/install_isolated/env.sh', 'make', '-j16', '-l16']' returned non-zero exit status 2.
I think it is a linker error with boost. But I don't know what I should do to solve the problem. Many thanks in advance.
Shengzhi Wang commented