2012-06-14 14 views
7

Estoy intentando construir OpenCV 2.4.1 con soporte para OpenGL, y sigue fallando. Tengo OpenGL instalado en mi Ubuntu 11.04, las librerías están en /usr/lib/libGL.so como de costumbre. Sé que mi instalación OpenGL es correcta porque tengo proyectos C++ OpenGL que compilan, vinculan y ejecutan OK.Intentando construir OpenCV 2.4.1 con soporte OpenGL

Ejecuto el comando cmake de la siguiente manera, porque quiero compatibilidad con CUDA y OpenGL.

/data/OpenCV-2.4.1/build $ cmake -D WITH_OPENGL=ON -D CMAKE_BUILD_TYPE=RELEASE -D WITH_CUDA=ON -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -D BUILD_EXAMPLES=ON -D WITH_TBB=ON .. 

Ésta es la salida que recibo de esto, me dice CUDA se detectó correctamente, pero no era OpenGL

-- General configuration for OpenCV 2.4.1 ===================================== 
-- 
-- Platform: 
--  Host:      Linux 2.6.35-32-generic x86_64 
--  CMake:      2.8.8 
--  CMake generator:    Unix Makefiles 
--  CMake build tool:   /usr/bin/make 
--  Configuration:    RELEASE 
-- 
-- C/C++: 
--  Built as dynamic libs?:  YES 
--  C++ Compiler:    /usr/bin/c++ (ver 4.4.4) 
--  C++ flags (Release):   -Wall -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -ffunction-sections -O3 -DNDEBUG -DNDEBUG 
--  C++ flags (Debug):   -Wall -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -ffunction-sections -g -O0 -DDEBUG -D_DEBUG -ggdb3 
--  C Compiler:     /usr/bin/gcc 
--  C flags (Release):   -Wall -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -ffunction-sections -O3 -DNDEBUG -DNDEBUG 
--  C flags (Debug):    -Wall -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -ffunction-sections -g -O0 -DDEBUG -D_DEBUG -ggdb3 
--  Linker flags (Release):  
--  Linker flags (Debug):   
-- 
-- OpenCV modules: 
--  To be built:     calib3d contrib core features2d flann gpu highgui imgproc legacy ml nonfree objdetect photo python stitching ts video videostab 
--  Disabled:     - 
--  Disabled by dependency:  - 
--  Unavailable:     androidcamera java 
-- 
-- GUI: 
--  QT 4.x:      NO 
--  GTK+ 2.x:     YES (ver 2.22.0) 
--  GThread :     YES (ver 2.26.1) 
--  GtkGlExt:     NO 
--  OpenGL support:    NO 
-- 
-- Media I/O: 
--  ZLib:      /usr/lib64/libz.so (ver 1.2.3.4) 
--  JPEG:      /usr/lib64/libjpeg.so (ver 62) 
--  PNG:       /usr/lib64/libpng.so (ver 1.2.44) 
--  TIFF:      /usr/lib64/libtiff.so (ver 42 - 3.9.4) 
--  JPEG 2000:     /usr/lib64/libjasper.so (ver 1.900.1) 
--  OpenEXR:      /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIex.so /usr/lib64/libHalf.so /usr/lib64/libIlmThread.so (ver 1.6.1) 
-- 
-- Video I/O: 
--  DC1394 1.x:     NO 
--  DC1394 2.x:     NO 
--  FFMPEG:      YES 
--  codec:      YES (ver 54.23.100) 
--  format:     YES (ver 54.6.100) 
--  util:      YES (ver 51.54.100) 
--  swscale:     YES (ver 2.1.100) 
--  gentoo-style:    YES 
--  GStreamer:     
--  base:      YES (ver 0.10.30) 
--  app:      YES (ver 0.10.30) 
--  video:      YES (ver 0.10.30) 
--  OpenNI:      NO 
--  OpenNI PrimeSensor Modules: NO 
--  PvAPI:      NO 
--  UniCap:      NO 
--  UniCap ucil:     NO 
--  V4L/V4L2:     Using libv4l (ver 0.8.8) 
--  Xine:      NO 
-- 
-- Other third-party libraries: 
--  Use IPP:      NO 
--  Use TBB:      YES (ver 3.0 interface 5000) 
--  Use Cuda:     YES (ver 4.2) 
--  Use Eigen:     YES (ver 2.0.15) 
-- 
-- NVIDIA CUDA:     (ver 4.2) 
--  Use CUFFT:     YES 
--  Use CUBLAS:     NO 
--  NVIDIA GPU arch:    11 12 13 20 21 30 
--  NVIDIA PTX archs:   11 12 13 20 21 30 
--  NVIDIA GPU features:   11 12 13 20 20 30 20 
-- 
-- Python: 
--  Interpreter:     /usr/bin/python (ver 2.6.6) 
--  Libraries:     /usr/lib64/libpython2.6.so (ver 2.6.6) 
--  numpy:      /usr/local/lib/python2.6/dist-packages/numpy/core/include (ver 2.0.0.dev-27befc8) 
--  packages path:    lib/python2.6/dist-packages 
-- 
-- Documentation: 
--  Build Documentation:   NO 
--  Sphinx:      NO 
--  PdfLaTeX compiler:   /usr/local/texlive/2011/bin/x86_64-linux/pdflatex 
-- 
-- Tests and samples: 
--  Tests:      YES 
--  Performance tests:   YES 
--  Examples:     YES 
-- 
-- Install path:     /usr/local 
-- 
-- cvconfig.h is in:    /data/OpenCV-2.4.1/build 
-- ----------------------------------------------------------------- 
-- 
-- Configuring done 
-- Generating done 
-- Build files have been written to: /data/OpenCV-2.4.1/build 

Cualquier adivinar lo que falta?

+6

'sudo apt-get install libgtkglext1 libgtkglext1-dev' –

+0

@AndreyKamaev ¡ERES EL HOMBRE! ¡ACLAMACIONES! Si lo publica como una respuesta, lo acepto de inmediato. – Dan

+0

@AndreyKamaev ¿Puedes publicar tu comentario como respuesta?Me gustaría dejar esta pregunta respondida. – Dan

Respuesta

14

Probablemente se olvidó de instalar el GTK+ OpenGL Extensions y sus cabeceras

sudo apt-get install libgtkglext1 libgtkglext1-dev 
+0

Esta parece ser la respuesta, pero primero fue sugerida por @AndreyKamaev en su comentario :) –

+0

Bueno, como @RuiMarques dijo, esto ya fue respondido por Andrey en un comentario, pero tomaré esta respuesta como la correcta porque no puedo aceptar un comentario, y quiero cerrar esta pregunta. – Dan

+2

No estoy seguro de cómo esta es la respuesta correcta. Instalar esto hace que CMake encuentre 'GtkGlExt' (la línea justo encima de OpenGL), pero' OpenGL support' sigue siendo NO. –

-2

Run cmake con la opción:

cmake -DWITH_OPENGL=ON <your CMakeLists.txt directory> 

o

cmake -DUSE_OPENGL=ON <your CMakeLists.txt directory> 
+0

No funciona. cmake espera expresiones como "VAR: tipo = valor". Si lo ejecuto con -DWITH_OPENGL o -DUSE_OPENGL Error de análisis en el argumento de la línea de comando: -D Debe ser: VAR: tipo = valor CMake Error: No se ha proporcionado ninguna secuencia de comandos cmake. Error de CMake: argumentos de procesamiento problemático – Dan

+0

windows? linux? – Eric

+0

Creo que la forma correcta debería ser -D WITH_OPENGL = ON, pero ya lo estoy haciendo y no tengo suerte. – Dan

2

no pude conseguir la bandera a WITH_OPENGL aparece en mis opciones de openCV 2.4.3 CMake (estoy ejecutando en una Mac - Snow Leopard 10.6.8) ... Finalmente conseguí que trabajaba con sólo abrir hasta CMakeLists.txt y la línea de edición de 128 a:

OCV_OPTION(WITH_OPENGL "Include OpenGL support" ON)

A continuación, ejecute el configurador CMake/generador y debe construir.

+2

Esto no se basó en OSX 10.8 debido a una referencia a glXUseXFont en modules/highgui/src/window_QT.cpp. Sin embargo, si simplemente comento esta línea, el proyecto se compilará (después de editar el archivo CMakeList.txt como lo indicó Amir Rubin). Estoy en medio de las pruebas si eliminar esta línea causa algún problema. Hasta aquí todo bien. –

+1

@AngusForbes Ha - exactamente me pasó a mí; Olvidé mencionarlo en mi respuesta. No he encontrado ningún problema al comentar esa línea: http://code.opencv.org/issues/1603 –

+0

En la raíz de la versión actual CMake, ahora es la línea 143. Intenté esto, y CMake todavía dice 'OpenGL support' es NO en Ubuntu 13.10 x64. –

1

Tengo el mismo problema y financio una solución al poner un comando extra (WITH_QT = ON). No sé por qué, pero encontré en Internet que no es posible habilitar OPENGL sin habilitar QT en lugar de GTK. Espero que esto nos ayude, y lo siento por mi inglés (no sé tanto porque hablo español).

Saludos compadres !! Desde México: D

0

Si está instalado OpenGL:

apt-get install libgl1-mesa-dev libglu1-mesa-dev libqt4-opengl-dev 

Y todavía CMake no puede encontrar OpenGL, entonces significa que no hay libGl.so en/usr/lib/x86_64-linux-gnu/. Si hay libGl.so en/usr/lib/x86_64-linux-gnu/mesa /, entonces este es un caso de un enlace de red faltante. La simple reinstalación de los paquetes debería restablecer ese enlace.

apt-get install --reinstall libgl1-mesa-dev libglu1-mesa-dev libqt4-opengl-dev 

Tenga en cuenta que tuve que instalar libqt4-opengl-dev pesar de que no se preocupan por el apoyo de Qt en OpenCV o soporte Qt en cualquier otro lugar. Estoy tratando de averiguar por qué fue necesario un considerable 80MB o descargar e instalar para hacer funcionar el OpenGL regular, pero este método ciertamente funciona en Ubuntu 13.10.

0
cmake -D:WITH_OPENGL=ON 

por el comentario de Dan. en openCV 2.4.6

Cuestiones relacionadas