在构建 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.
任何无需重新安装 Ubuntu 即可恢复的帮助都videodev2.h
将不胜感激。
答案1
要手动删除头文件你必须通过以下方式安装它的包
sudo apt install --reinstall linux-libc-dev