1.我下载了motion-3.2.12,首先进行配置,在配置过程就遇到了问题,当我输入配置命令./configure --host=arm-linux --prefix=(省略),在这个过程中不会报错,但当你make的时候你会发现出错,提示没有jpeg之类的错误,这个错误其实是我没有安装libjpeg的库,所以make没有通过,所以在网上搜索了安装libjpeg的教程
2.安装libjpeg
我在网上搜索了如何安装,最后下载的文件名为jpegsrc.v9.tar.gz,同样需要配置安装,配置使用了--prefix、--host、-enable-shared几个选项,安装成功后把make install后的库都复制到Linux的库目录下
3.重新编译motion
还是同样的错误,查看配置过程代码,看到JPEG居然没有Support,真是吐血了,明明安装了的。经过无数遍的查找资料,一遍遍尝试,偶然一次把--host去掉后JPEG居然支持了,真是奇怪(至今尚未明白为什么加上--host就不支持JPEG),问题是我要把motion在开发板运行,就不能把去掉--host
解决办法:配置命令按照第一步的命令,配置成功后修改Makefile,在LIBS的一行加上库的路径-L空格加上库路径,然后加上-l:库名,如我的是-l:libjpeg.so.9,,退出就可以make了,最后make install
虽然在配置过程还是会显示JPEG SUPPORT : NO,但通过上述办法还是可以使用到libjpeg库的
4.可能出现的问题
4.1一些头文件缺失,如jerror.h、jconfig.h、jpeglib.h等,我的解决办法是JPEG编译成功后再安装路径下有include文件夹,里面就有所需头文件,复制到motion所在目录下,然后在相应出错的文件将<>改为“”,使这些文件在motion目录下搜索,而不是去Linux默认头文件路径下搜索
4.2make过程,提示缺少linux/videodev.h,解决办法:第一步,使用aptitude install libv4l-dev安装相应包,第二步建立软连接 ln -s /usr/include/libv4l-videodev.h /usr/include/linux/videodev.h
参考文章:https://segmentfault.com/a/1190000004335339
4.3再次make,有字段first使用,看了下有V4L什么的,解决办法,在相应文件加上<linux/videodev2.h>