C 如何使用v4l2 linux接口从网络摄像头获取视频?

C 如何使用v4l2 linux接口从网络摄像头获取视频?,c,linux,ioctl,v4l2,v4l,C,Linux,Ioctl,V4l2,V4l,我正在尝试从V4L2API中删除。当我试图运行示例代码时,我在编译程序本身时遇到了问题。请检查错误,在编译步骤中是否需要安装或标记要传递的内容 ubox:~/capVideoFrame$ gcc v4l2grab.c && ./a.out /tmp/cc0E2uRM.o: In function `xioctl': v4l2grab.c:(.text+0x2b): undefined reference to `v4l2_ioctl' /tmp/cc0E2uRM.o: In fu

我正在尝试从V4L2API中删除。当我试图运行示例代码时,我在编译程序本身时遇到了问题。请检查错误,在编译步骤中是否需要安装或标记要传递的内容

ubox:~/capVideoFrame$ gcc v4l2grab.c && ./a.out
/tmp/cc0E2uRM.o: In function `xioctl':
v4l2grab.c:(.text+0x2b): undefined reference to `v4l2_ioctl'
/tmp/cc0E2uRM.o: In function `main':
v4l2grab.c:(.text+0xf3): undefined reference to `v4l2_open'
v4l2grab.c:(.text+0x30f): undefined reference to `v4l2_mmap'
v4l2grab.c:(.text+0x6a2): undefined reference to `v4l2_munmap'
v4l2grab.c:(.text+0x6c4): undefined reference to `v4l2_close'
collect2: error: ld returned 1 exit status
源代码头文件:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <linux/videodev2.h>
#include "/usr/include/libv4l2.h" // I am using ubuntu, so pointing to this location
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#include“/usr/include/libv4l2.h”//I正在使用ubuntu,所以指向这个位置

要成功编译,您需要为它添加标志
-lv4l1-lv4l2

gcc v4l2grab.c -lv4l1 -lv4l2

如果以前没有安装libv4l2,则需要先安装它:

sudo apt get安装-y libv4l dev

顺便说一句,上面的链接已断开,新的链接已断开。

不走运,
gcc-lv4l1-lv4l2 v4l2grab.c
-同样的错误工作!请回答为什么我们需要这些标志?它将您的程序与必要的v4l2库“链接”起来。请阅读本文,它将更清楚地解释为什么需要这些标志。欢迎访问。我认为OP已经安装了库,问题是没有包含正确的标志。