Сборка OpenCV 3.0 с OpenGL и GTK на LMDE2 (Debian 8.2)

Я создал opencv с помощью cmake -DWITH_OPENGL=ON .., но вывод cmake говорит мне, что поддерживается OpenGL НЕТ.

И я проверил кеш cmake, чтобы убедиться, что WITH_OPENGL это ON.

Используемый графический интерфейс — GTK+ 3.0, и установлена ​​libgtkglext1-dev.


person Yantao Xie    schedule 19.11.2015    source источник


Ответы (1)


Прочитав скрипт 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 не будет загружен.

Я также пытался заставить вызывать CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT), даже когда HAVE_GTK3 верно, но в конце концов обнаружил ошибку компиляции.

Поэтому я обновляю свою команду построения, как показано ниже.

cmake -DWITH_OPENGL=ON -DWITH_GTK_2_X=ON ..

При установке WITH_GTK_2_X вместо gtk3 принудительно используется gtk2.

person Yantao Xie    schedule 19.11.2015