一、下载opencv源码以及相关依赖库源码(libz、libjpeg、libpng、yasm、libx264、libxvid、ffmpeg)
二、编译依赖库
1、Libz的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步 : ./configure --prefix=<生成库的安装目录> --shared
第三步: make
make install
2、
Libjpeg的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步:./configure --host=arm-linux --prefix=<生成库的安装目录> --enable-shared --enable-static
第三步: make
make install
3、
Libpng的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步: ./configure --host=arm-linux --prefix=<生成库的安装目录> --enable-shared --enable-static
第三步: make
make install
4、yasm的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步: ./configure --host=arm-linux --prefix=<生成库的安装目录> --enable-shared --enable-static
第三步: make
make install
5、Libx264的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步:./configure --enable-shared --host=arm-linux --disable-asm --prefix=<生成库的安装目录>
第三步: make
make install
6、Libxvid的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步:cd build/generic && ./configure --prefix=<生成库的安装目录> --host=arm-linux --disable-assembly
第三步: make
make install
7、ffmpeg的交叉编译
第一步: export CC=<toolchain的gcc路径>
第二步:./configure --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads
--disable-yasm --disable-stripping --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/arm-linux-gnueabihf/include --extra-ldflags=-L/usr/arm-linux-gnueabihf/lib --prefix=<生成库的安装目录>
第三步: make
make install
三、配置toolchain
上一步骤执行完毕,将会在--prefix指定的目录下生成如下的文件结构,
1、将上述lib目录中的文件复制到toolchain的rootfs目录的usr/lib目录下
2、将上述include目录复制到toolcahin的rootfs目录的usr目录下
注:toolchain的rootfs目录,存放了交叉编译时需要用到的目标平台相关的库、头文件等,
不同版本的toolchain该目录可能有所不同,
以
gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux这个toolchain为例,该目录为
arm-linux-gnueabihf/libc
四、配置opencv
1、在opencv源码根目录下创建编译目录build
2、启动cmake-gui
3、去掉with_cuda with_gtk with_1394 libv4l选项
4、配置CMAKE_INSTALL_PREFIX, 为编译后的文件安装的路径
5、点击config, 然后generate
6、进入build, 执行make
7、执行make install
至此,可以在
CMAKE_INSTALL_PREFIX指定的目录下找到相关的库文件以及头文件。