opencv_contrib icon indicating copy to clipboard operation
opencv_contrib copied to clipboard

Error compiling rgbd

Open du-xinyi opened this issue 2 years ago • 3 comments

  • OpenCV => :4.8.1:
  • Operating System / Platform => :ubuntu20.04:
  • Compiler => :g++:

In cmake, select with_opengl=on,my qt version is 6.5.3. The following error occurred at compile time

/usr/bin/ld: CMakeFiles/opencv_rgbd.dir/src/dynafu.cpp.o: in function cv::dynafu::DynaFuImpl<cv::Mat>::DynaFuImpl(cv::kinfu::Params const&)': dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x3ec): undefined reference to glGenRenderbuffersEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x3f9): undefined reference to glBindRenderbufferEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x410): undefined reference to glRenderbufferStorageEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x41e): undefined reference to glGenFramebuffersEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x42b): undefined reference to glBindFramebufferEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x442): undefined reference to glFramebufferRenderbufferEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x450): undefined reference to glGenRenderbuffersEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x45d): undefined reference to glBindRenderbufferEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x474): undefined reference to glRenderbufferStorageEXT' /usr/bin/ld: dynafu.cpp:(.text._ZN2cv6dynafu10DynaFuImplINS_3MatEEC2ERKNS_5kinfu6ParamsE[_ZN2cv6dynafu10DynaFuImplINS_3MatEEC5ERKNS_5kinfu6ParamsE]+0x48b): undefined reference to `glFramebufferRenderbufferEXT' collect2: error: ld returned 1 exit status make[2]: *** [modules/rgbd/CMakeFiles/opencv_rgbd.dir/build.make:505: lib/libopencv_rgbd.so.4.8.1] Error 1

Undefined call function is in opencv_contrib/modules/rgbd/src/dynafu.cpp

du-xinyi avatar Nov 22 '23 09:11 du-xinyi

when calling cmake try to add -DOpenGL_GL_PREFERENCE=LEGACY

remmel avatar Jan 26 '24 16:01 remmel

Yes.... A straight-forward solution is just to Turn OFF rgbd... Thank you ...

jiapei100 avatar May 07 '24 15:05 jiapei100

I made experiments with Ubuntu 18.04, 20.04 and 24.04. Only Ubuntu 24.04 provides QT6 package (6.4.2). All the combinations were built just fine and passed tests. Looks like your QT build is not complete.

asmorkalov avatar Jul 17 '24 09:07 asmorkalov