闲来无事,弄一下webcam,碰到一些问题,记录如下:

我的环境:ubuntu 12.04 x86下,源码是我在sourcode下载的最新code。

1.terminal运行:./configure

如果报错找不到linux/videodev.h头文件的话,请安装libv4l1-dev安装包。sudo apt-get install libv4l1-dev或者libv4l1*,然后将configure里面的linux/videodev.h替换为libv4l1-videodev.h,并且把src下的所有#include<linux/videodev.h>替换为#include<libv4l1-videodev.h>.

2.make

如果报错:

Making all in src
make[1]: 正在进入目录 `/home/zyb/share/webcam_server-0.50/src'
gcc  -g -O2  -o webcam_server -ljpeg -lpthread camera.o client.o filters.o grabber.o imgqueue.o jdatabuf.o image.o unpalette.o version.o watchdog.o webcam_server.o  -lpthread
filters.o: In function `image2jpeg':
/home/zyb/share/webcam_server-0.50/src/filters.c:61: undefined reference to `jpeg_std_error'
/home/zyb/share/webcam_server-0.50/src/filters.c:62: undefined reference to `jpeg_CreateCompress'
/home/zyb/share/webcam_server-0.50/src/filters.c:68: undefined reference to `jpeg_set_defaults'
/home/zyb/share/webcam_server-0.50/src/filters.c:69: undefined reference to `jpeg_set_quality'
/home/zyb/share/webcam_server-0.50/src/filters.c:70: undefined reference to `jpeg_start_compress'
/home/zyb/share/webcam_server-0.50/src/filters.c:72: undefined reference to `jpeg_write_scanlines'
/home/zyb/share/webcam_server-0.50/src/filters.c:73: undefined reference to `jpeg_finish_compress'
/home/zyb/share/webcam_server-0.50/src/filters.c:87: undefined reference to `jpeg_destroy_compress'
/home/zyb/share/webcam_server-0.50/src/filters.c:81: undefined reference to `jpeg_destroy_compress'
collect2: ld 返回 1
make[1]: *** [webcam_server] 错误 1

这是他找到lib,但是无法生成目标文件。因为编译的时候需要加上 -ljpeg.可能是makefile的问题。那么我们去修改makefile。

vim Makefile

发现88行 LIBS =  -lpthread,在后面加上-ljpeg.然后make.通过。


以上是我自己编译时候碰到的问题和解决办法,希望对大家有用。