下载地址: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工具

分类: v4l-utils

0 条评论

发表回复

您的电子邮箱地址不会被公开。