gtk_widget_set_realized wurde in diesem Bereich nicht deklariert

762
drjrm3

Ich versuche zu kompilieren OpenCV 3.1.0auf RHEL 6.4und erhalte die folgende Fehlermeldung:

[ 34%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_gtk.cpp.o /hpcf/libs/opencv/vendor/3.1.0-2/modules/highgui/src/window_gtk.cpp: In function ‘void cvImageWidget_realize(GtkWidget*)’: /hpcf/libs/opencv/vendor/3.1.0-2/modules/highgui/src/window_gtk.cpp:167: error: ‘gtk_widget_set_realized’ was not declared in this scope /hpcf/libs/opencv/vendor/3.1.0-2/modules/highgui/src/window_gtk.cpp: In function ‘void cvImageWidget_size_allocate(GtkWidget*, GtkAllocation*)’: /hpcf/libs/opencv/vendor/3.1.0-2/modules/highgui/src/window_gtk.cpp:379: error: ‘gtk_widget_get_realized’ was not declared in this scope make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_gtk.cpp.o] Error 1 make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2 make: *** [all] Error 2 

Wir haben eindeutig, gtkwie es zeigt in cmake:

-- GUI:  -- QT: NO -- GTK+ 2.x: YES (ver 2.18.9) -- GThread : YES (ver 2.22.5) -- GtkGlExt: NO -- OpenGL support: NO -- VTK support: NO 

Ich bin mir nicht sicher, wie ich dieses Problem beheben kann. Hat jemand irgendwelche Ideen?

1

2 Antworten auf die Frage

1
R Sivalingam

Ich weiß, dass es eine Weile her ist, also wenn es hilft:

Ich hatte den gleichen Fehler, als ich OpenCV 3.1.0 auf RHEL kompilierte. Ich habe den Code in highgui / src / window_gtk.cpp von OpenCV 2.4.3 nachgeschlagen. Mach Folgendes:

  • Ersetzen Sie "gtk_widget_set_realized" durch "GTK_WIDGET_SET_FLAGS".
  • Ersetzen Sie "gtk_widget_get_realized" durch "GTK_WIDGET_REALIZED".

Sobald ich diese geändert habe, hat es funktioniert.

0
user609783

Installieren Sie die neueste Version von gcc

sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.9 g++-4.9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9