linux/videodev.h:没有这样的文件或目录 - 在ubuntu 11.04上的OpenCV

Nir*_*han 61 c++ opencv ubuntu-11.04

我试图在Ubuntu 11.04上安装OpenCV2.2.但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
Run Code Online (Sandbox Code Playgroud)

这有解决方案吗?

谢谢.

buk*_*zor 89

目前的答案是不完整的.安装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
Run Code Online (Sandbox Code Playgroud)

这提供了一个linux/videodev.h正确的版本(1).

  • 这对我来说对Pygame很有用,如果没有这个,它将不会从Ubuntu 12.10上的pip安装. (4认同)

小智 67

sudo apt-get install libv4l-dev
Run Code Online (Sandbox Code Playgroud)

编辑基于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 
Run Code Online (Sandbox Code Playgroud)

  • 需要编辑cap_v4l.cpp,将#include <videodev.h>替换为#include <libv4l1-videodev.h>,如karlphillip提供的链接所示 (9认同)
  • 或者更好的是,只需创建一个名为videodev.h的文件的符号链接.无需修补. (7认同)