这个交叉编译折磨了我好几天,刚刚实践成功,迫不及待的跟大家分享一下,希望对你有用哦。
操作环境:Ubuntu 14.04
编译器:arm-linux-guneabi-gcc
Cmake版本:2.8.12.2
Cmake-gui:版本与cmake相同
目标主机:T717
Opencv版本:3.1.0
依赖库版本:
Libz:zlib-1.2.11 下载网址:https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz/download?use_mirror=nchc&download=
Libx264:x264-snapshot-20191124-2245
下载网址:http://www.videolan.org/developers/x264.html
Libxvid:xvidcore-1.3.5
下载网址:https://labs.xvid.com/source/
Ffmpeg:ffmpeg-4.2.1
下载网址:http://ffmpeg.org/download.html
一、安装依赖项
在终端依次执行以下操作:
(1)安装pkg-config
sudo apt-get install pkg-config
sudo apt-get install libgtk2.0-dev
(2)安装依赖项
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
这几项与视频解码相关,不安装的话后面 opencv make时会出现下图情况:
参考:https://my.oschina.net/u/1250206/blog/850302
二、安装依赖库
(1)目标主机安装目录构建
移植opencv其实不难,重点在于弄清安装路径和编译器,只要不和本地opencv弄混,理论上来讲就没问题了。我们首先在开发主机上构建一个临时安装环境,便于交叉编译过程依赖库的搜索以及方便最后向目标主机转移安装,还有最重要的一点就是防止与开发主机环境弄混。终端执行:
cd home/xlb/opt/ #这里的xlb是我的用户名
mkdir arm
本文的安装目录是home文件夹下的opt文件夹,注意与系统目录下的opt文件夹区分开。将前文所提到的依赖库和opencv源码解压到opt文件夹下,接下来先对依赖库进行交叉编译并安装到临时安装目录opt/arm下。
(2)交叉编译libz
cd /home/xlb/zlib-1.2.11 #进入zlib源码目录
./conf