Hello all,
I have a plugin that uses OpenCV and it works perfectly on Kubuntu. Now I am trying to run the code on CentOS but when I run the pipeline, I get: $ gst-launch videotestsrc ! opencvelement ! ximagesink WARNING: erroneous pipeline: no element "opencvelement" When I run ldd in Kubuntu, I get: $ ldd .libs/libOPENCVELEMENT.so linux-gate.so.1 => (0x0060f000) libgstbase-0.10.so.0 => /usr/lib/libgstbase-0.10.so.0 (0x00a74000) libgstreamer-0.10.so.0 => /usr/lib/libgstreamer-0.10.so.0 (0x00474000) libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0x006a2000) libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0x00110000) libopencv_core.so.2.3 => /usr/local/lib/libopencv_core.so.2.3 (0x00730000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0x00209000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x002f4000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00acd000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0x0031e000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x0033c000) libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0x00357000) libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0x0035d000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00c9c000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0x00362000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x0036b000) libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0x00370000) libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0x00e52000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0x00377000) /lib/ld-linux.so.2 (0x00a10000) But when I run it on CentOS, I don't see opencv $ ldd .libs/libOPENCVELEMENT.so linux-vdso.so.1 => (0x00007fff7a1fd000) libgstvideo-0.10.so.0 => /usr/lib64/libgstvideo-0.10.so.0 (0x00002ba0ac9b7000) libgstcontroller-0.10.so.0 => /usr/lib64/libgstcontroller-0.10.so.0 (0x00002ba0acbc4000) libgstbase-0.10.so.0 => /usr/lib64/libgstbase-0.10.so.0 (0x00002ba0acdeb000) libgstreamer-0.10.so.0 => /usr/lib64/libgstreamer-0.10.so.0 (0x00002ba0ad03c000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00002ba0ad326000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00002ba0ad569000) libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00002ba0ad76c000) librt.so.1 => /lib64/librt.so.1 (0x00002ba0ad970000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00002ba0adb7a000) libz.so.1 => /lib64/libz.so.1 (0x00002ba0adeb7000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00002ba0ae0cb000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002ba0ae3a8000) libm.so.6 => /lib64/libm.so.6 (0x00002ba0ae6a8000) libc.so.6 => /lib64/libc.so.6 (0x00002ba0ae92b000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002ba0aec83000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ba0aee91000) libdl.so.2 => /lib64/libdl.so.2 (0x00002ba0af0ac000) /lib64/ld-linux-x86-64.so.2 (0x0000003f6c800000) Here is my makefile.am, which is the same on both OS plugin_LTLIBRARIES = libOPENCVELEMENT.la # Plugin source files: libOPENCVELEMENT_la_SOURCES = opencv_chain.c opencv_chain.h datasetup.h libOPENCVELEMENT_la_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_CFLAGS) \ $(OPENCV_CFLAGS) libOPENCVELEMENT_la_CXXFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_CFLAGS) \ $(OPENCV_CFLAGS) libOPENCVELEMENT_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) \ $(GST_LIBS) \ $(OPENCV_LIBS) \ -lopencv_core \ -lopencv_highgui libOPENCVELEMENT_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libOPENCVELEMENT_la_LIBTOOLFLAGS = --tag=disable-static Let me know if you need more information. Any help will be appreciated. Thank you.
All your bases are belong to us.
|
The obvious question is do you have OpenCV installed on CentOS? It seems not... In fact, I would assume that you would get a link error if you tried building on CentOS. CentOS is a Fedora derivitive. The Red Hat developers don't like software is isn't completely open source. OpenCV is released under the BSD license, so it may not be easily provided to CentOS (via rpm). You may have to download the source and build it yourself. If so, you need to be mindful of glib version compatibility. You might also be able to get it from rpm forge, which you should check first.
On Mon, Jul 30, 2012 at 11:02 AM, iron_guitarist1987 <[hidden email]> wrote: Hello all, _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I have the latest version of OpenCV installed. 2.4.2
All your bases are belong to us.
|
When I do a gst-inspect on the .so file I get
$ gst-inspect /usr/lib64/gstreamer-0.10/libopencvtest.so (gst-inspect-0.10:5378): GStreamer-WARNING **: Failed to load plugin '/usr/lib64/gstreamer-0.10/libopencvtest.so': /usr/lib64/gstreamer-0.10/libopencvtest.so: undefined symbol: _ZN2cv3Mat10deallocateEv Could not load plugin file: Opening module failed: /usr/lib64/gstreamer-0.10/libopencvtest.so: undefined symbol: _ZN2cv3Mat10deallocateEv
All your bases are belong to us.
|
Demangle the undefined symbol and you will know what is missing. That _ZN... is the C++ mangled name of a method. You will then be able to find which library on your system needs to be updated. Just hope it isn't glib...
On Tue, Jul 31, 2012 at 2:09 PM, iron_guitarist1987 <[hidden email]> wrote: When I do a gst-inspect on the .so file I get _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
$ c++filt -n _ZN2cv3Mat10deallocateEv
cv::Mat::deallocate() I've tried reinstalling OpenCVin different ways, but I still get the same error. I also installed it in both /usr/lib and /usr/lib64.
All your bases are belong to us.
|
Try posting the message on their forum, because it looks like a problem with their library.
On Tue, Jul 31, 2012 at 3:22 PM, iron_guitarist1987 <[hidden email]> wrote: $ c++filt -n _ZN2cv3Mat10deallocateEv _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Just another thought. The gstreamer ffmpeg plug-in has support for opencv. There could be something there that is causing your problem.
On Tue, Jul 31, 2012 at 3:26 PM, Chuck Crisler <[hidden email]> wrote: Try posting the message on their forum, because it looks like a problem with their library. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I was able to solve this by going to /usr/lib64/pkgconfig and modified opencv.pc to explicitly have all libraries. I also had to move the plugins from /usr/lib/gstreamer-0.10 to /usr/lib64/gstreamer-0.10
All your bases are belong to us.
|
Free forum by Nabble | Edit this page |