VIS4ROB-lab / covins

COVINS-(G) -- A (Generic) Framework for Collaborative Visual-Inertial SLAM and Multi-Agent 3D Mapping
366 stars 63 forks source link

Error build of ORB_SLAM3 #33

Closed aboelela924 closed 6 months ago

aboelela924 commented 1 year ago

I ran all the commands to build ORB_SLAM3 until build vision_opencv everything ran without errors after that i had the following:

/usr/bin/ld: CMakeFiles/Mono.dir/src/ros_mono.cc.o: in function estd2::GetStringFromYaml(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:90: undefined reference tocv::FileStorage::FileStorage(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:98: undefined reference to cv::FileStorage::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /usr/bin/ld: CMakeFiles/Mono.dir/src/ros_mono.cc.o: in functioncv::FileNode::operator std::cxx11::basic_string<char, std::char_traits, std::allocator >() const': /usr/include/opencv4/opencv2/core/persistence.hpp:570: undefined reference to cv::FileNode::string[abi:cxx11]() const' /usr/bin/ld: CMakeFiles/Mono.dir/src/ros_mono.cc.o: in functionint estd2::GetValFromYaml(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:76: undefined reference to cv::FileStorage::FileStorage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference tocv::FileStorage::operator[](std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to cv::FileNode::operator double() const' /usr/bin/ld: CMakeFiles/Mono.dir/src/ros_mono.cc.o: in functionbool estd2::GetValFromYaml(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:76: undefined reference to `cv::FileStorage::FileStorage(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to `cv::FileStorage::operator[](std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) const' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to cv::FileNode::operator double() const' /usr/bin/ld: CMakeFiles/Mono.dir/src/ros_mono.cc.o: in functiondouble estd2::GetValFromYaml(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:76: undefined reference to cv::FileStorage::FileStorage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference tocv::FileStorage::operator[](std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) const' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to cv::FileNode::operator double() const' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/Mono.dir/build.make:214: /home/aboelela/ws/covins_ws/src/covins/orb_slam3/Examples/ROS/ORB_SLAM3/Mono] Error 1 make[1]: *** [CMakeFiles/Makefile2:741: CMakeFiles/Mono.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... /usr/bin/ld: CMakeFiles/Mono_Inertial.dir/src/ros_mono_inertial.cc.o: in functionestd2::GetStringFromYaml(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:90: undefined reference to `cv::FileStorage::FileStorage(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:98: undefined reference to `cv::FileStorage::operator[](std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) const' /usr/bin/ld: CMakeFiles/Mono_Inertial.dir/src/ros_mono_inertial.cc.o: in function cv::FileNode::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >() const': /usr/include/opencv4/opencv2/core/persistence.hpp:570: undefined reference tocv::FileNode::string[abi:cxx11]() const' /usr/bin/ld: CMakeFiles/Mono_Inertial.dir/src/ros_mono_inertial.cc.o: in function int estd2::GetValFromYaml<int>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:76: undefined reference tocv::FileStorage::FileStorage(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to cv::FileStorage::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference tocv::FileNode::operator double() const' /usr/bin/ld: CMakeFiles/Mono_Inertial.dir/src/ros_mono_inertial.cc.o: in function bool estd2::GetValFromYaml<bool>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:76: undefined reference tocv::FileStorage::FileStorage(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to cv::FileStorage::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference tocv::FileNode::operator double() const' /usr/bin/ld: CMakeFiles/Mono_Inertial.dir/src/ros_mono_inertial.cc.o: in function double estd2::GetValFromYaml<double>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)': /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:76: undefined reference tocv::FileStorage::FileStorage(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference to cv::FileStorage::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /usr/bin/ld: /home/aboelela/ws/covins_ws/src/covins/covins_comm/include/covins/covins_base/typedefs_base.hpp:84: undefined reference tocv::FileNode::operator double() const' collect2: error: ld returned 1 exit status make[2]: [CMakeFiles/Mono_Inertial.dir/build.make:214: /home/aboelela/ws/covins_ws/src/covins/orb_slam3/Examples/ROS/ORB_SLAM3/Mono_Inertial] Error 1 make[1]: [CMakeFiles/Makefile2:172: CMakeFiles/Mono_Inertial.dir/all] Error 2 make: *** [Makefile:130: all] Error 2

patriksc commented 1 year ago

Hi! Could you share some more details n your system (e.g. Ubuntu version, special hardware used)? Also, I see from your logs that you are using OpenCV4 - did you follow the steps listed here under If you are running Ubuntu 20 (or generally have OpenCV 4 installed) ?

aboelela924 commented 1 year ago

Hi, I followed the steps yes. I was using a virutal machine using ubuntu 20.04 on vmware.

patriksc commented 1 year ago

Hey, I have now tested this on my side (VirtualBox VM w/ latest Ubuntu 20.04 image). It worked smoothly for me, I did not see such an error. I copied all commands directly from the readme. I have seen this error earlier though, and it usually appeared when the OpenCV version was not aligned, i.e. linking against OpenCV 4. Given that t worked alright for me, my best guess here is that you might have missed a step from the readme, and I would suggest to try the deployment again with a clean workspace.

patriksc commented 6 months ago

Closing - inactive