web-dev-qa-db-fra.com

linux/videodev.h: aucun fichier ni répertoire de ce type - OpenCV sur Ubuntu 11.04

J'ai essayé d'installer OpenCV2.2 sur Ubuntu 11.04. Mais la compilation OpenCV échoue en indiquant une erreur liée au fichier linux/videodev.h. Le fichier disponible dans/user/includes/linux est nommé 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

Y a-t-il une solution pour cela?

je vous remercie.

59
Niroshan
Sudo apt-get install libv4l-dev

Edition pour les systèmes RH :

Sur une Fedora 16 pour installer pygame 1.9.1 (dans une virtualenv):

Sudo yum install libv4l-devel
Sudo ln -s /usr/include/libv4l1-videodev.h   /usr/include/linux/videodev.h 
65
Alberto

La réponse actuelle est incomplète. L'installation de libv4l-dev crée un /usr/include/linux/videodev2.h mais ne résout pas le problème posé par l'impossibilité de trouver linux/videodev.h. La bibliothèque fournit des fichiers d’en-tête pour des raisons de compatibilité, mais ne les place pas à l’endroit où les applications les rechercheront.

Sudo apt-get install libv4l-dev
cd /usr/include/linux
Sudo ln -s ../libv4l1-videodev.h videodev.h

Ceci fournit un linux/videodev.h, et de la bonne version (1).

85
bukzor

la prise en charge de la v4l a été abandonnée dans les versions récentes du noyau (y compris celle livrée avec Ubuntu 11.04).

EDIT: votre question est connectée à un message récent envoyé au groupe d'utilisateurs OpenCV, qui dispose d'instructions pour compiler OpenCV 2.2 dans Ubuntu 11.04. Votre approche est pas idéale.

3
karlphillip

Le correctif est ici: https://code.ros.org/trac/opencv/attachment/ticket/862/OpenCV-2.2-nov4l1.patch

En ajoutant #ifdef HAVE_CAMV4L autour de

#include <linux/videodev.h>

dans OpenCV-2.2.0/modules/highgui/src/cap_v4l.cpp et le retrait de || defined (HAVE_CAMV4L2) de la ligne 174 m'a permis de compiler.

3
sujit

pour CMake supprimer/désactiver les variables with_libv4lwith_v4l si vous n'avez pas besoin de cette bibliothèque.

0
Vyacheslav