c++ - linux/videodev.h: no existe tal archivo o directorio-OpenCV en ubuntu 11.04
ubuntu-11.04 (5)
Intenté instalar OpenCV2.2 en Ubuntu 11.04. Pero la compilación de OpenCV falla al indicar un error relacionado con el archivo linux / videodev.h. El archivo disponible en / user / includes / linux se llama videodev2.h.
/home/user/OpenCV-2.2.0/modules/highgui/src/cap_v4l.cpp:217:28: fatal error: linux/videodev.h: No such file or directory
compilation terminated.
make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap_v4l.o] Error 1
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
make: *** [all] Error 2
Existe alguna solucion para esto ?
gracias.
El parche está aquí: https://code.ros.org/trac/opencv/attachment/ticket/862/OpenCV-2.2-nov4l1.patch
Al agregar #ifdef HAVE_CAMV4L
alrededor
#include <linux/videodev.h>
en OpenCV-2.2.0/modules/highgui/src/cap_v4l.cpp
y eliminar || defined (HAVE_CAMV4L2)
|| defined (HAVE_CAMV4L2)
desde la línea 174
me permitió compilar.
La compatibilidad con v4l se ha descartado en versiones recientes de kernel (incluida la que se incluye con Ubuntu 11.04).
EDITAR : su pregunta está conectada a un mensaje reciente que se envió al grupo de usuarios de OpenCV, que tiene instrucciones para compilar OpenCV 2.2 en Ubuntu 11.04. Tu enfoque no es ideal .
La respuesta actual es incompleta. Instalar libv4l-dev
crea un /usr/include/linux/videodev2.h
pero no resuelve el problema establecido de no poder encontrar linux/videodev.h
. La biblioteca envía archivos de encabezado para compatibilidad, pero no los coloca donde las aplicaciones los buscarán.
sudo apt-get install libv4l-dev
cd /usr/include/linux
sudo ln -s ../libv4l1-videodev.h videodev.h
Esto proporciona un linux/videodev.h
, y de la versión correcta (1).
para CMake eliminar / deshabilitar las variables with_libv4l
with_v4l
si no necesita esta lib.
sudo apt-get install libv4l-dev
Edición para sistemas basados en RH :
En un Fedora 16 para instalar pygame 1.9.1 (en un virtualenv):
sudo yum install libv4l-devel
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h