Ответ 1
sudo apt-get install libv4l-dev
Редактирование систем на основе RH:
На Fedora 16 для установки pygame 1.9.1 (в virtualenv):
sudo yum install libv4l-devel
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
Я попытался установить OpenCV2.2 на Ubuntu 11.04. Но компиляция OpenCV не позволяет указать ошибку, связанную с файлом linux/videodev.h. Файл, доступный в /user/includes/linux, называется 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
Есть ли решение для этого?
спасибо.
sudo apt-get install libv4l-dev
Редактирование систем на основе RH:
На Fedora 16 для установки pygame 1.9.1 (в virtualenv):
sudo yum install libv4l-devel
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
Текущий ответ неполный. Установка libv4l-dev
создает /usr/include/linux/videodev2.h
, но не решает заявленную проблему неспособности найти linux/videodev.h
. В библиотеке хранятся файлы заголовков для совместимости, но не удается разместить их там, где приложения будут искать их.
sudo apt-get install libv4l-dev
cd /usr/include/linux
sudo ln -s ../libv4l1-videodev.h videodev.h
Это обеспечивает linux/videodev.h
и правильную версию (1).
Патч находится здесь: https://code.ros.org/trac/opencv/attachment/ticket/862/OpenCV-2.2-nov4l1.patch
Добавив #ifdef HAVE_CAMV4L
вокруг
#include <linux/videodev.h>
в OpenCV-2.2.0/modules/highgui/src/cap_v4l.cpp
и удаление || defined (HAVE_CAMV4L2)
из строки 174
позволило мне скомпилировать.
Поддержка v4l была удалена в последних версиях ядра (в том числе и в Ubuntu 11.04).
EDIT. Ваш вопрос связан с сообщением которое было отправлено в группу пользователей OpenCV, которая имеет инструкции по компиляции OpenCV 2.2 в Ubuntu 11.04. Ваш подход не идеален.
для CMake удалить/отключить переменные with_libv4l
with_v4l
, если вам не нужна эта библиотека.