2015-06-01 165 views
5

我想在Slackware 4.1上編譯opencv。不過,我每次都遇到以下錯誤。用cap_gstreamer錯誤編譯opencv失敗

In file included from /usr/include/gstreamer-0.10/gst/pbutils/encoding-profile.h:29:0, 
      from /tmp/SBo/opencv-2.4.11/modules/highgui/src/cap_gstreamer.cpp:65: 
/usr/include/gstreamer-0.10/gst/pbutils/gstdiscoverer.h:35:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstDiscovererStreamInfoClass; 

/usr/include/gstreamer-0.10/gst/pbutils/gstdiscoverer.h:83:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstDiscovererContainerInfoClass; 

/usr/include/gstreamer-0.10/gst/pbutils/gstdiscoverer.h:104:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstDiscovererAudioInfoClass; 
    ^
/usr/include/gstreamer-0.10/gst/pbutils/gstdiscoverer.h:129:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstDiscovererVideoInfoClass; 
    ^
/usr/include/gstreamer-0.10/gst/pbutils/gstdiscoverer.h:159:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstDiscovererSubtitleInfoClass; 
    ^
/usr/include/gstreamer-0.10/gst/pbutils/gstdiscoverer.h:202:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstDiscovererInfoClass; 
    ^
In file included from /tmp/SBo/opencv-2.4.11/modules/highgui/src/cap_gstreamer.cpp:65:0: 
/usr/include/gstreamer-0.10/gst/pbutils/encoding-profile.h:47:9: error: 'GstMiniObjectClass' does not name a type 
typedef GstMiniObjectClass GstEncodingProfileClass; 
    ^
/usr/include/gstreamer-0.10/gst/pbutils/encoding-profile.h:66:9: error: 'GstEncodingProfileClass' does not name a type 
typedef GstEncodingProfileClass GstEncodingContainerProfileClass; 
    ^
/usr/include/gstreamer-0.10/gst/pbutils/encoding-profile.h:85:9: error: 'GstEncodingProfileClass' does not name a type 
typedef GstEncodingProfileClass GstEncodingVideoProfileClass; 
    ^
/usr/include/gstreamer-0.10/gst/pbutils/encoding-profile.h:104:9: error: 'GstEncodingProfileClass' does not name a type 
typedef GstEncodingProfileClass GstEncodingAudioProfileClass; 
    ^
/tmp/SBo/opencv-2.4.11/modules/highgui/src/cap_gstreamer.cpp: In member function 'virtual bool CvCapture_GStreamer::grabFrame()': 
/tmp/SBo/opencv-2.4.11/modules/highgui/src/cap_gstreamer.cpp:232:57: error: 'gst_app_sink_pull_sample' was not declared in this scope 
sample = gst_app_sink_pull_sample(GST_APP_SINK(sink)); 
                ^
make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap_gstreamer.cpp.o] Error 1 

爲編輯配置報告如下:

-- General configuration for OpenCV 2.4.11 ===================================== 
-- Version control:    unknown 
-- 
-- Platform: 
--  Host:      Linux 3.10.17 i686 
--  CMake:      2.8.12 
--  CMake generator:    Unix Makefiles 
--  CMake build tool:   /usr/bin/gmake 
--  Configuration:    Release 
-- 
-- C/C++: 
--  Built as dynamic libs?:  YES 
--  C++ Compiler:    /usr/bin/c++ (ver 4.8.2) 
--  C++ flags (Release):   -O2 -march=i486 -mtune=i686 -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -pthread -march=i686 -fomit-frame-pointer -msse -msse2 -msse3 -mfpmath=sse -ffunction-sections -O2 -DNDEBUG -DNDEBUG 
--  C++ flags (Debug):   -O2 -march=i486 -mtune=i686 -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -pthread -march=i686 -fomit-frame-pointer -msse -msse2 -msse3 -mfpmath=sse -ffunction-sections -g -O0 -DDEBUG -D_DEBUG 
--  C Compiler:     /usr/bin/cc 
--  C flags (Release):   -O2 -march=i486 -mtune=i686 -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -pthread -march=i686 -fomit-frame-pointer -msse -msse2 -msse3 -mfpmath=sse -ffunction-sections -O2 -DNDEBUG -DNDEBUG 
--  C flags (Debug):    -O2 -march=i486 -mtune=i686 -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -pthread -march=i686 -fomit-frame-pointer -msse -msse2 -msse3 -mfpmath=sse -ffunction-sections -g -O0 -DDEBUG -D_DEBUG 
--  Linker flags (Release):  
--  Linker flags (Debug):   
--  Precompiled headers:   NO 
-- 
-- OpenCV modules: 
--  To be built:     core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib stitching superres ts videostab 
--  Disabled:     world 
--  Disabled by dependency:  - 
--  Unavailable:     androidcamera dynamicuda java python viz 
-- 
-- GUI: 
--  QT 4.x:      YES (ver 4.8.5 EDITION = OpenSource) 
--  QT OpenGL support:   NO 
--  OpenGL support:    NO 
--  VTK support:     NO 
-- 
-- Media I/O: 
--  ZLib:      /usr/lib/libz.so (ver 1.2.8) 
--  JPEG:      /usr/lib/libjpeg.so (ver 80) 
--  PNG:       /usr/lib/libpng.so (ver 1.4.12) 
--  TIFF:      /usr/lib/libtiff.so (ver 42 - 3.9.7) 
--  JPEG 2000:     build (ver 1.900.1) 
--  OpenEXR:      build (ver 1.7.1) 
-- 
-- Video I/O: 
--  DC1394 1.x:     NO 
--  DC1394 2.x:     YES (ver 2.2.2) 
--  FFMPEG:      NO 
--  codec:      NO 
--  format:     NO 
--  util:      NO 
--  swscale:     NO 
--  gentoo-style:    NO 
--  GStreamer:     
--  base:      YES (ver 0.10.36) 
--  video:      YES (ver 0.10.36) 
--  app:      YES (ver 0.10.36) 
--  riff:      YES (ver 0.10.36) 
--  pbutils:     YES (ver 0.10.36) 
--  OpenNI:      NO 
--  OpenNI PrimeSensor Modules: NO 
--  PvAPI:      NO 
--  GigEVisionSDK:    NO 
--  UniCap:      NO 
--  UniCap ucil:     NO 
--  V4L/V4L2:     Using libv4l1 (ver 0.9.5)/libv4l2 (ver 0.9.5) 
--  XIMEA:      NO 
--  Xine:      NO 
-- 
-- Other third-party libraries: 
--  Use IPP:      NO 
--  Use Eigen:     NO 
--  Use TBB:      NO 
--  Use OpenMP:     NO 
--  Use GCD      NO 
--  Use Concurrency    NO 
--  Use C=:      NO 
--  Use Cuda:     NO 
--  Use OpenCL:     YES 
-- 
-- OpenCL: 
--  Version:      dynamic 
--  Include path:    /tmp/SBo/opencv-2.4.11/3rdparty/include/opencl/1.2 
--  Use AMD FFT:     NO 
--  Use AMD BLAS:    NO 
-- 
-- Python: 
--  Interpreter:     /usr/bin/python2 (ver 2.7.5) 
-- 
-- Java: 
--  ant:       NO 
--  JNI:       /usr/lib/java/include /usr/lib/java/include/linux /usr/lib/java/include 
--  Java tests:     NO 
-- 
-- Documentation: 
--  Build Documentation:   NO 
--  Sphinx:      NO 
--  PdfLaTeX compiler:   /usr/share/texmf/bin/pdflatex 
--  Doxygen:      YES (/usr/bin/doxygen) 
-- 
-- Tests and samples: 
--  Tests:      YES 
--  Performance tests:   YES 
--  C/C++ Examples:    NO 
-- 
-- Install path:     /usr 
-- 
-- cvconfig.h is in:    /tmp/SBo/opencv-2.4.11/build 

我通過OpenCV的要求看,從下面的鏈接

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation

,我需要的ffmpeg或libav包,這是我在標準的slackware 14.1軟件包下找不到的。但我完全安裝了gstreamer(gstreamer,gst-pluigns-base和good),我上面遇到的錯誤肯定與gstreamer有關。

+0

歡迎來到Stack Overflow!與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be ),這是「預先感謝」,而不是「感謝先進」。 –

回答

1

我使用的是Ubuntu 12.04,但得到了同樣的錯誤。 這可以通過使用-D WITH_GSTREAMER = OFF參數來避免。 按照建議herehere

然後here他們建議更新gstreamer,但這並沒有爲我解決它。 我仍然想用全新的安裝來驗證這一點。

+0

似乎OP想gstreamer ...爲什麼建議禁用它? – CrackerJack9

1

它爲我工作後,我設置WITH_GSTREAMER_0_10爲ON

+0

這個作品完美,並沒有禁用gstreamer,作爲其他答案建議做...不知道爲什麼它是downvoted, – CrackerJack9

+0

我也能夠使用此選項安裝opencv。非常好的答案 – diningphil

6

我得到這個固定通過安裝libgstreamer-plugins-base1.0-dev。在此之前,CMake檢測到GStreamer版本0.10.36,之後 - 1.4.5。

0

如果有人仍然有這樣的問題, 嘗試安裝gstreamer1.0正確地與所有的包

例爲Fedora操作系統:

dnf install gstreamer1-devel gstreamer1-plugins-base-tools 
gstreamer1-devel-docs gstreamer1-plugins-base-devel 
gstreamer1-plugins-base-devel-docs 
gstreamer1-plugins-good gstreamer1-plugins-good-extras 
gstreamer1-plugins-ugly gstreamer1-plugins-ugly-devel-docs 
gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel 
gstreamer1-plugins-bad-free-extras 

這裏是爲您的系統全面的安裝指南:official link.