Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with build on Ubuntu 20.04 #2

Open
chrisdottel opened this issue Oct 4, 2021 · 6 comments
Open

Issues with build on Ubuntu 20.04 #2

chrisdottel opened this issue Oct 4, 2021 · 6 comments

Comments

@chrisdottel
Copy link

Keep getting an error when trying to build this. It seems to be caused by Boost?

[ 63%] Linking CXX executable render /usr/bin/ld: CMakeFiles/render.dir/MotionWidget.cpp.o: in function MotionWidget::runPPO()':
MotionWidget.cpp:(.text+0x2cfe): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)' /usr/bin/ld: MotionWidget.cpp:(.text+0x2d78): undefined reference to boost::python::numpy::from_object(boost::python::api::object const&, int, int, boost::python::numpy::ndarray::bitflag)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x32c1): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: CMakeFiles/render.dir/MotionWidget.cpp.o: in function MotionWidget::initNetworkSetting(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, bool)':
MotionWidget.cpp:(.text+0x3408): undefined reference to boost::python::numpy::initialize(bool)' /usr/bin/ld: MotionWidget.cpp:(.text+0x3417): undefined reference to boost::python::detail::str_base::str_base(char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x3426): undefined reference to boost::python::import(boost::python::str)' /usr/bin/ld: MotionWidget.cpp:(.text+0x3539): undefined reference to boost::python::detail::str_base::str_base(char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x35a0): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)' /usr/bin/ld: MotionWidget.cpp:(.text+0x35e4): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x370f): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: MotionWidget.cpp:(.text+0x3adb): undefined reference to boost::python::detail::str_base::str_base(char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x3aea): undefined reference to boost::python::import(boost::python::str)' /usr/bin/ld: MotionWidget.cpp:(.text+0x3b28): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x3df0): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)' /usr/bin/ld: MotionWidget.cpp:(.text+0x454d): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x4619): undefined reference to boost::python::numpy::from_object(boost::python::api::object const&, int, int, boost::python::numpy::ndarray::bitflag)' /usr/bin/ld: MotionWidget.cpp:(.text+0x4e06): undefined reference to boost::python::detail::str_base::str_base(char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x4e15): undefined reference to boost::python::import(boost::python::str)' /usr/bin/ld: MotionWidget.cpp:(.text+0x4e53): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x4f18): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)' /usr/bin/ld: MotionWidget.cpp:(.text+0x5121): undefined reference to boost::python::throw_error_already_set()'
/usr/bin/ld: MotionWidget.cpp:(.text+0x5351): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: MotionWidget.cpp:(.text+0x5361): undefined reference to boost::python::throw_error_already_set()'
/usr/bin/ld: MotionWidget.cpp:(.text+0x5371): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: MotionWidget.cpp:(.text+0x5381): undefined reference to boost::python::throw_error_already_set()'
/usr/bin/ld: CMakeFiles/render.dir/MotionWidget.cpp.o:MotionWidget.cpp:(.text+0x5391): more undefined references to boost::python::throw_error_already_set()' follow /usr/bin/ld: CMakeFiles/render.dir/MotionWidget.cpp.o: in function MotionWidget::setParamFromNetwork()':
MotionWidget.cpp:(.text+0x6313): undefined reference to boost::python::api::getattr(boost::python::api::object const&, char const*)' /usr/bin/ld: MotionWidget.cpp:(.text+0x63d3): undefined reference to boost::python::numpy::from_object(boost::python::api::object const&, int, int, boost::python::numpy::ndarray::bitflag)'
/usr/bin/ld: MotionWidget.cpp:(.text+0x6ae1): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: CMakeFiles/render.dir/MotionWidget.cpp.o:(.data.rel.local.DW.ref._ZTIN5boost6python17error_already_setE[DW.ref._ZTIN5boost6python17error_already_setE]+0x0): undefined reference to typeinfo for boost::python::error_already_set'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const': main.cpp:(.text._ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE6xparseERNS_3anyERKSt6vectorIS7_SaIS7_EE[_ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE6xparseERNS_3anyERKSt6vectorIS7_SaIS7_EE]+0x1d): undefined reference to boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int)'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::name() const': main.cpp:(.text._ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nameEv[_ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nameEv]+0x3e): undefined reference to boost::program_options::arg[abi:cxx11]'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)': main.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ERKSA_EE[_ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ERKSA_EE]+0x50): undefined reference to boost::program_options::detail::cmdline::set_additional_parser(boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>)'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)': main.cpp:(.text._ZN5boost15program_options11to_internalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt6vectorIS7_SaIS7_EERKS8_IT_SaISB_EE[_ZN5boost15program_options11to_internalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt6vectorIS7_SaIS7_EERKS8_IT_SaISB_EE]+0xa4): undefined reference to boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)': main.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc[_ZN5boost15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x193): undefined reference to boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::basic_command_line_parser<char>::run()': main.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcE3runEv[_ZN5boost15program_options25basic_command_line_parserIcE3runEv]+0x34): undefined reference to boost::program_options::detail::cmdline::get_canonical_option_prefix()'
/usr/bin/ld: main.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcE3runEv[_ZN5boost15program_options25basic_command_line_parserIcE3runEv]+0x69): undefined reference to boost::program_options::detail::cmdline::run()' /usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::basic_parsed_options boost::program_options::parse_command_line(int, char const
const*, boost::program_options::options_description const&, int, boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>)':
main.cpp:(.text._ZN5boost15program_options18parse_command_lineIcEENS0_20basic_parsed_optionsIT_EEiPKPKS3_RKNS0_19options_descriptionEiNS_9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_ERKSJ_EE[_ZN5boost15program_options18parse_command_lineIcEENS0_20basic_parsed_optionsIT_EEiPKPKS3_RKNS0_19options_descriptionEiNS_9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_ERKSJ_EE]+0x46): undefined reference to boost::program_options::detail::cmdline::set_options_description(boost::program_options::options_description const&)' /usr/bin/ld: main.cpp:(.text._ZN5boost15program_options18parse_command_lineIcEENS0_20basic_parsed_optionsIT_EEiPKPKS3_RKNS0_19options_descriptionEiNS_9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_ERKSJ_EE[_ZN5boost15program_options18parse_command_lineIcEENS0_20basic_parsed_optionsIT_EEiPKPKS3_RKNS0_19options_descriptionEiNS_9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_ERKSJ_EE]+0x59): undefined reference to boost::program_options::detail::cmdline::style(int)'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::variables_map::~variables_map()': main.cpp:(.text._ZN5boost15program_options13variables_mapD0Ev[_ZN5boost15program_options13variables_mapD5Ev]+0x14): undefined reference to vtable for boost::program_options::variables_map'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function boost::program_options::variables_map::~variables_map()': main.cpp:(.text._ZN5boost15program_options13variables_mapD2Ev[_ZN5boost15program_options13variables_mapD5Ev]+0x14): undefined reference to vtable for boost::program_options::variables_map'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o: in function main': main.cpp:(.text.startup+0xae): undefined reference to boost::program_options::options_description::m_default_line_length'
/usr/bin/ld: main.cpp:(.text.startup+0xc9): undefined reference to boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)' /usr/bin/ld: main.cpp:(.text.startup+0xef): undefined reference to boost::program_options::options_description::add_options()'
/usr/bin/ld: main.cpp:(.text.startup+0x112): undefined reference to boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*)' /usr/bin/ld: main.cpp:(.text.startup+0x12e): undefined reference to boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*)'
/usr/bin/ld: main.cpp:(.text.startup+0x140): undefined reference to boost::program_options::options_description_easy_init::operator()(char const*, char const*)' /usr/bin/ld: main.cpp:(.text.startup+0x148): undefined reference to boost::program_options::variables_map::variables_map()'
/usr/bin/ld: main.cpp:(.text.startup+0x180): undefined reference to boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)' /usr/bin/ld: main.cpp:(.text.startup+0x249): undefined reference to boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'
/usr/bin/ld: main.cpp:(.text.startup+0x2d7): undefined reference to boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /usr/bin/ld: CMakeFiles/render.dir/main.cpp.o:(.data.rel.ro._ZTIN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE[_ZTIN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE]+0x18): undefined reference to typeinfo for boost::program_options::value_semantic_codecvt_helper'
/usr/bin/ld: CMakeFiles/render.dir/main.cpp.o:(.data.rel.ro._ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE[_ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE]+0x38): undefined reference to boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' /usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function SIM::toNumPyArray(std::vector<double, std::allocator >)':
Functions.cpp:(.text+0x1807): undefined reference to boost::python::numpy::dtype boost::python::numpy::detail::get_float_dtype<32>()' /usr/bin/ld: Functions.cpp:(.text+0x1815): undefined reference to boost::python::numpy::empty(boost::python::tuple const&, boost::python::numpy::dtype const&)'
/usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function SIM::toNumPyArray(Eigen::Matrix<double, -1, 1, 0, -1, 1>)': Functions.cpp:(.text+0x19e0): undefined reference to boost::python::numpy::dtype boost::python::numpy::detail::get_float_dtype<32>()'
/usr/bin/ld: Functions.cpp:(.text+0x19ee): undefined reference to boost::python::numpy::empty(boost::python::tuple const&, boost::python::numpy::dtype const&)' /usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function SIM::toNumPyArray(std::vector<std::vector<double, std::allocator >, std::allocator<std::vector<double, std::allocator > > >)':
Functions.cpp:(.text+0x1be3): undefined reference to boost::python::numpy::dtype boost::python::numpy::detail::get_float_dtype<32>()' /usr/bin/ld: Functions.cpp:(.text+0x1bf1): undefined reference to boost::python::numpy::empty(boost::python::tuple const&, boost::python::numpy::dtype const&)'
/usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function SIM::toNumPyArray(std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, std::allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > >)': Functions.cpp:(.text+0x1e30): undefined reference to boost::python::numpy::dtype boost::python::numpy::detail::get_float_dtype<32>()'
/usr/bin/ld: Functions.cpp:(.text+0x1e43): undefined reference to boost::python::numpy::empty(boost::python::tuple const&, boost::python::numpy::dtype const&)' /usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function SIM::toNumPyArray(Eigen::Matrix<double, -1, -1, 0, -1, -1>)':
Functions.cpp:(.text+0x206f): undefined reference to boost::python::numpy::dtype boost::python::numpy::detail::get_float_dtype<32>()' /usr/bin/ld: Functions.cpp:(.text+0x207d): undefined reference to boost::python::numpy::empty(boost::python::tuple const&, boost::python::numpy::dtype const&)'
/usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function boost::python::tuple boost::python::make_tuple<int>(int const&)': Functions.cpp:(.text._ZN5boost6python10make_tupleIiEENS0_5tupleERKT_[_ZN5boost6python10make_tupleIiEENS0_5tupleERKT_]+0x81): undefined reference to boost::python::throw_error_already_set()'
/usr/bin/ld: Functions.cpp:(.text.ZN5boost6python10make_tupleIiEENS0_5tupleERKT[ZN5boost6python10make_tupleIiEENS0_5tupleERKT]+0x91): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: ../../sim/libsim.a(Functions.cpp.o): in function boost::python::tuple boost::python::make_tuple<int, int>(int const&, int const&)':
Functions.cpp:(.text.ZN5boost6python10make_tupleIiiEENS0_5tupleERKT_RKT0[ZN5boost6python10make_tupleIiiEENS0_5tupleERKT_RKT0]+0x101): undefined reference to boost::python::throw_error_already_set()' /usr/bin/ld: Functions.cpp:(.text._ZN5boost6python10make_tupleIiiEENS0_5tupleERKT_RKT0_[_ZN5boost6python10make_tupleIiiEENS0_5tupleERKT_RKT0_]+0x111): undefined reference to boost::python::throw_error_already_set()'
collect2: error: ld returned 1 exit status
make[2]: *** [render/CMakeFiles/render.dir/build.make:206: render/render] Error 1
make[1]: *** [CMakeFiles/Makefile2:192: render/CMakeFiles/render.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
`

@harris-mohamed
Copy link

I have the same error. Ubuntu 20.04 as well. Were you able to get past this?

@chrisdottel
Copy link
Author

I have the same error. Ubuntu 20.04 as well. Were you able to get past this?

Not yet, I'm going to try and fix today. I assume it has something to do with Python Boost library not being set up correctly for this.

@chrisdottel
Copy link
Author

chrisdottel commented Oct 6, 2021

I have the same error. Ubuntu 20.04 as well. Were you able to get past this?

I got mine to build.

The first thing I would do is make sure you have the Boost libraries on your system. In Ubuntu you can install python boost libraries with

sudo apt-get install -y libboost-python-dev

To the run_cmake.sh file, I put this flag in as described in this problem on stackexchange
https://stackoverflow.com/questions/9948375/cmake-find-package-succeeds-but-returns-wrong-path/12044891

cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=$CENVDIR \ -DFCL_INCLUDE_DIRS=$CENVDIR/include/fcl \ -DFCL_LIBRARIES=$CENVDIR/lib/libfcl.so \ -DCCD_INCLUDE_DIRS=$CENVDIR/include/ccd \ -DCCD_LIBRARIES=$CENVDIR/lib/libccd.so \ -DBoost_NO_BOOST_CMAKE=ON \
So, just add DBoost_NO_BOOST_CMAKE=ON to the flags in the shell script.

If that still doesn't work, try adding this to the CMakeLists.txt file,

find_package(Boost 1.71.0 EXACT PATHS /usr/lib/x86_64-linux-gnu/ /usr/include COMPONENTS filesystem python38 numpy38 program_options)

Where the paths after PATHS are the directories containing your Boost header files and the compiled .so files (ie libboost_python) that seem to be causing the issues.

Also, comment out the

find_package(Boost 1.69 **. . .**) IF(NOT Boost_Found) ENDIF()

In my case, I guess CMake was linking to the incorrect directory.

@harris-mohamed
Copy link

Did you ever have any issues with Dart? I started from scratch in a Docker container, and now when I run ./run_cmake.sh and get the error

CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find DART (missing: gui collision-bullet)

@harris-mohamed
Copy link

harris-mohamed commented Oct 12, 2021

I got past the Dart and Boost errors, but now am unable to build correctly. I added the DBoost_NO_BOOST_CMAKE=ON flag and replaced the boost line with find_package(Boost REQUIRED COMPONENTS filesystem python numpy program_options). The run_cmake.sh script now runs properly, but trying to run make -jN in the build directory does not work and errors out with

sim/CMakeFiles/sim.dir/build.make:86: recipe for target 'sim/CMakeFiles/sim.dir/Controller.cpp.o' failed
make[2]: *** [sim/CMakeFiles/sim.dir/Controller.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:85: recipe for target 'sim/CMakeFiles/sim.dir/all' failed
make[1]: *** [sim/CMakeFiles/sim.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Did you run into this at all?

@chrisdottel
Copy link
Author

chrisdottel commented Oct 13, 2021

I had issues with -jN flag, I believe I did -j4 or -j8. I don't recall what that flag was, I think it was the amount of workers compiling the code. I think N meant the maximum number of workers? Not totally sure, but I either got rid of that flag altogether or picked a random number appended to the j flag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants