Undefined reference to `g_type_check_instance_cast'

I tried compiling opencv-4.7.0 with gstreamer with:

root@ucm-imx8m-plus:/home/alan/V4L2/opencv-4.7.0/build#
cmake -DCMAKE_INSTALL_PREFIX=../_install -DWITH_GSTREAMER=ON  ..

but finally I got lots of “undefined reference to” as below:

...
[ 51%] Linking CXX shared library ../../lib/libopencv_videoio.so
[ 51%] Building CXX object modules/calib3d/CMakeFiles/opencv_calib3d.dir/src/five-point.cpp.o
[ 51%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/int8layers/softmax_layer.cpp.o
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `void cv::(anonymous namespace)::GSafePtr_release<_GstElement>(_GstElement**)':
cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI11_GstElementEEvPPT_+0x10): undefined reference to `g_type_check_instance_cast'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI11_GstElementEEvPPT_+0x14): undefined reference to `gst_object_unref'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `void cv::(anonymous namespace)::GSafePtr_release<_GstBus>(_GstBus**)':
cap_gstreamer.cpp:(.text.unlikely._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI7_GstBusEEvPPT_+0x10): undefined reference to `g_type_check_instance_cast'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text.unlikely._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI7_GstBusEEvPPT_+0x14): undefined reference to `gst_object_unref'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `void cv::(anonymous namespace)::GSafePtr_release<_GstPad>(_GstPad**)':
cap_gstreamer.cpp:(.text.unlikely._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI7_GstPadEEvPPT_+0x10): undefined reference to `g_type_check_instance_cast'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text.unlikely._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI7_GstPadEEvPPT_+0x14): undefined reference to `gst_object_unref'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `void cv::(anonymous namespace)::GSafePtr_release<_GstEncodingContainerProfile>(_GstEncodingContainerProfile**)':
cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI28_GstEncodingContainerProfileEEvPPT_+0x10): undefined reference to `g_type_check_instance_cast'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_1L16GSafePtr_releaseI28_GstEncodingContainerProfileEEvPPT_+0x14): undefined reference to `gst_object_unref'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `cv::gst_initializer::~gst_initializer()':
cap_gstreamer.cpp:(.text._ZN2cv15gst_initializerD2Ev[_ZN2cv15gst_initializerD5Ev]+0x28): undefined reference to `g_main_loop_unref'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text._ZN2cv15gst_initializerD2Ev[_ZN2cv15gst_initializerD5Ev]+0x34): undefined reference to `gst_deinit'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text._ZN2cv15gst_initializerD2Ev[_ZN2cv15gst_initializerD5Ev]+0x44): undefined reference to `g_main_loop_quit'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `std::thread::_State_impl<std::thread::_Invoker<std::tuple<cv::gst_initializer::gst_initializer()::{lambda()#1}> > >::_M_run()':
cap_gstreamer.cpp:(.text._ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZN2cv15gst_initializerC4EvEUlvE_EEEEE6_M_runEv[_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZN2cv15gst_initializerC4EvEUlvE_EEEEE6_M_runEv]+0x8): undefined reference to `g_main_loop_run'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o: in function `cv::(anonymous namespace)::GSafePtr<_GstElement>::reset(_GstElement*) [clone .isra.0]':
cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_18GSafePtrI11_GstElementE5resetEPS2_.isra.0+0x1c): undefined reference to `g_type_check_instance_cast'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_18GSafePtrI11_GstElementE5resetEPS2_.isra.0+0x20): undefined reference to `gst_object_unref'
/usr/lib/gcc/aarch64-poky-linux/10.2.0/../../../../aarch64-poky-linux/bin/ld: cap_gstreamer.cpp:(.text._ZN2cv12_GLOBAL__N_18GSafePtrI11_GstElementE5resetEPS2_.isra.0+0x30): undefined reference to `g_object_ref_sink'
...

I googled a lot and most of the messages indicated that gobject-2.0 library is missed, but I do confirm that it is in /usr/lib as below:

root@ucm-imx8m-plus:/usr/lib# ls /usr/lib/libgobject-2.0.so*
/usr/lib/libgobject-2.0.so    /usr/lib/libgobject-2.0.so.0.6600.7
/usr/lib/libgobject-2.0.so.0  /usr/lib/libgobject-2.0.so.0.7000.5

Any idea what the problem it is?

Thank you!