在LMDE2(Debian 8.2)上使用OpenGL和GTK构建OpenCV 3.0

在LMDE2(Debian 8.2)上使用OpenGL和GTK构建OpenCV 3.0,opengl,gtk,opencv3.0,Opengl,Gtk,Opencv3.0,我用cmake-DWITH_OPENGL=ON..构建了opencv,但是cmake的输出告诉我支持的OPENGL是否 我已经检查了cmake缓存,以确保使用OPENGL的是打开的 使用的GUI是GTK+3.0,并且安装了libgtkglext1 dev。在阅读cmake脚本cmake/OpenCVFindLibsGUI.cmake之后,我找到了相关的cmake代码: # --- GTK --- ocv_clear_vars(HAVE_GTK HAVE_GTK3 HAVE_GTHREAD HAV

我用
cmake-DWITH_OPENGL=ON..
构建了opencv,但是cmake的输出告诉我支持的OPENGL是

我已经检查了cmake缓存,以确保使用OPENGL的
打开的


使用的GUI是GTK+3.0,并且安装了libgtkglext1 dev。

在阅读cmake脚本
cmake/OpenCVFindLibsGUI.cmake
之后,我找到了相关的cmake代码:

# --- GTK ---
ocv_clear_vars(HAVE_GTK HAVE_GTK3 HAVE_GTHREAD HAVE_GTKGLEXT)
if(WITH_GTK AND NOT HAVE_QT)
  # ...
  if(WITH_OPENGL AND NOT HAVE_GTK3)
    CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT) # MARK1
  endif()
endif()

# --- OpenGl ---
ocv_clear_vars(HAVE_OPENGL HAVE_QT_OPENGL)
if(WITH_OPENGL)
  if(WITH_WIN32UI OR (HAVE_QT AND QT_QTOPENGL_FOUND) OR HAVE_GTKGLEXT) # MARK2
    find_package (OpenGL QUIET)
  # ...
  endif ()
endif(WITH_OPENGL)
因为我使用GTK+3.0,所以标记为
MARK1
的语句将不会执行,那么标记为
MARK2
的条件将为false。因此OpenGL包将不会被加载

我还试图强制调用
CHECK_模块(gtkglext-1.0 HAVE_gtkglext)
即使
HAVE_GTK3
为真,但我最终发现编译错误

因此,我更新了我的building命令,如下所示

cmake -DWITH_OPENGL=ON -DWITH_GTK_2_X=ON ..
设置为打开时,gtk2将被强制使用,而不是gtk3