下载地址:https://www.linuxfromscratch.org/blfs/view/svn/multimedia/v4l-utils.html
aarch64平台
http://www.360doc.com/content/22/0721/18/17302338_1040750239.shtml
./configure --prefix=/home/xinyi/code/cplus/libs/v4l-utils-1.24.1/build --host=arm-linux CC=/usr/bin/aarch64-linux-gnu-gcc CXX=/usr/bin/aarch64-linux-gnu-g++
可能会报错:
- 报错1
macro `AM_GNU_GETTEXT' not found in library macro `AM_GNU_GETTEXT_VERSION' not found in library
需要安装sudo apt-get install gettext-base gettext liblocale-gettext-perl
,重新执行编译流程。
- 报错2
config.status: creating libdvbv5-po/Makefile
CXX v4l2_dbg-v4l2-dbg.o
CXX v4l2_dbg-v4l2-info.o
CXXLD v4l2-dbg
Making all in v4l2-sysfs-path
CC v4l2-sysfs-path.o
/bin/bash: ../../build-aux/depcomp: 没有那个文件或目录
make[3]: *** [Makefile:529:v4l2-sysfs-path.o] 错误 127
make[2]: *** [Makefile:490:all-recursive] 错误 1
make[1]: *** [Makefile:598:all-recursive] 错误 1
make: *** [Makefile:525:all] 错误 2
clean重新编译就没有报这个错误,再编译报错3.
- 报错3
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: cannot find -lX11
X11交叉编译:
X系列相关的库在https://www.x.org/releases/individual/lib/下都能找到
X11编译会提示找不到XCB,于是下载XCB。
xorg-macros安装:
报错:error: must install xorg-macros 1.12 or later before running autoconf/autogen
apt-get install xutils-dev
XCB交叉编译:
1)xcb编译会找不到xcb-proto,于是在上面的网站https://www.x.org/releases/individual/xcb/下载xcb-proto最新版本只有1.15,编译报错需要1.16版本https://www.linuxfromscratch.org/blfs/view/svn/x/xcb-proto.html
2)找到Xau,去https://www.x.org/releases/individual/lib/下载最新的1.0.11版本,编译成功。
Android平台NDK编译
因为只用到v4l2-ctl,所以就只编译utils/v4l2-ctl
模块。
1)注释epoll_ev.events = EPOLLPRI
,否则会报错error: unknown type name '__force'
2)注释Android.mk对libstlport的依赖
3)v4l2-ctl.cpp与v4l2-tpg-colors.c都有main方法,但是ndk编译并没有报错。
查看v4l2-tpg-colors.c文件中,#ifndef COMPILE_APP
它的main方法就会执行,而且正好躲过了检查。
要么在文件中定义COMPILE_APP宏,要么把main方法注释掉。
4)定义Application.mk
然后就可成功编译出android平台的v4l2-ctl工具
0 条评论