在 LMDE2 (Debian 8.2) 上使用 OpenGL 和 GTK 构建 OpenCV 3.0
Build OpenCV 3.0 with OpenGL and GTK on LMDE2 (Debian 8.2)
我用 cmake -DWITH_OPENGL=ON ..
构建了 opencv,但是 cmake 的输出告诉我支持的 OpenGL 是 NO.
而且我检查了 cmake 缓存以确保 WITH_OPENGL
是 ON
。
使用的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
标记的条件为假。所以不会加载OpenGL包。
我也试过在HAVE_GTK3
为真时强制调用CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT)
,最后发现编译编译出错。
所以我更新我的构建命令如下
cmake -DWITH_OPENGL=ON -DWITH_GTK_2_X=ON ..
启用 WITH_GTK_2_X
后,将强制使用 gtk2 而不是 gtk3。
我用 cmake -DWITH_OPENGL=ON ..
构建了 opencv,但是 cmake 的输出告诉我支持的 OpenGL 是 NO.
而且我检查了 cmake 缓存以确保 WITH_OPENGL
是 ON
。
使用的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
标记的条件为假。所以不会加载OpenGL包。
我也试过在HAVE_GTK3
为真时强制调用CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT)
,最后发现编译编译出错。
所以我更新我的构建命令如下
cmake -DWITH_OPENGL=ON -DWITH_GTK_2_X=ON ..
启用 WITH_GTK_2_X
后,将强制使用 gtk2 而不是 gtk3。