我试图从v4l2 api中run the sample code。当我试图运行示例代码时,我在编译程序本身时遇到了问题。请检查错误,在编译步骤中是否需要安装或传递标记?

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

最佳答案

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

gcc v4l2grab.c -lv4l1 -lv4l2

关于c - 如何使用v4l2 linux接口(interface)从网络摄像头获取视频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49201989/

10-09 13:35