При сборке OpenCV я случайно связал не тот файл заголовка.
Вместо того, чтобы связывать videodeh.h
следующим образом:
$ sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
$ cd /usr/include/linux
$ sudo ln -s -f ../libv4l1-videodev.h videodev.h
Я случайно связал videodev2.h
, например:
$ sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
$ cd /usr/include/linux
$ sudo ln -s -f ../libv4l1-videodev.h videodev2.h
Теперь, когда я отключил videodev2.h
( sudo unlink videodev2.h
), он удалил файл прослушивания из / usr / include / linux
.
Я попытался восстановить videodev2.h
, установив libv4l-dev
и v4l-utils
( sudo apt-get install libv4l-dev v4l-utils
), но безрезультатно. Я также просто скопировал videodev2.h
из здесь , но это дает мне эту ошибку при сборке opencv:
In file included from /home/rafay/opencv/modules/videoio/src/cap_v4l.cpp:235:
/usr/include/linux/videodev2.h:63:10: fatal error: linux/compiler.h: No such file or directory
#include <linux/compiler.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
Любая помощь, которая может восстановить videodev2.h
без переустановки Ubuntu.
To get the manually removed header file back you have to install its package by
sudo apt install --reinstall linux-libc-dev