在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