OpenCV版本2.4.2,ARM平台友善之臂(FriendlyARM)Tiny6410
http://blog.chinaunix.net/uid-26544753-id-3284780.html
一、编译环境及库文件
linux环境: Ubuntu 11.04
交叉编译: 4.5.1
arm平台: tiny6410
libz: zlib-1.2.7
libjpeg: jpegsrc.v7
libpng: libpng-1.5.10
libyasm: yasm-1.2.0
opencv: opencv-2.4.2
libx264: x264-snapshot-20120608-2245
libxvid: xvidcore-1.3.2
lffmpeg: ffmpeg-0.10.3
cmake: cmake-2.8.8-Linux-i386.tar,gz
二、opencv-2.4.1的移植过程
1. libz的交叉编译:
# ./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --shared
修改makefile, 在原来的gcc, ar, ranlib之前加上arm-linux-前缀,如下
CC=arm-linux-gcc
LDSHARED=arm-linux-gcc -shared -wl, -soname,libz.so.1,--version-script,zlib.map
CPP=arm-linux-gcc -E
AR=arm-linux-ar
RANLIB=arm-linux-ranlib
#make
#make install
2. libjpeg的交叉编译:
#./configure --host=arm-linux --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
3. libpng的交叉编译
#./configure --host=arm-linux --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
4. yasm的交叉编译:
#./configure --host=arm-linux --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
5. libx264的交叉编译:
#./configure --enable-shared --host=arm-linux --disable-asm --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
修改config.mak,如下
CC=arm-linux-gcc
LD=arm-linux-gcc -o
AR=arm-linux-ar rc
RANLINB=arm-linux-ranlib
(注,arm-linux-ar rc后面需要加一个空格)
#make
#make install
6. libxvid的交叉编译:
#cd build/generic
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --host=arm-linux --disable-assembly
#make
#make install
7. ffmpeg的交叉编译:
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-linux-gcc --enable-swscale
#make
#make install
8. cmake-gui安装
#apt-get install cmake-qt-gui
9、opencv 2.4.2的交叉编译:
用到的主要目录说明:
交叉编译工具链所在目录 /opt/FriendlyARM/toolschain/4.5.1/
安装opencv的目录 /usr/local/
opencv源码所在目录 /home/6410/opencv/opencv-2.4.2/
编译好的opencv库所在目录 /home/6410/opencv/opencv-2.4.2/build
#mkdir build
#cd build
#cmake-gui
选择源代码目录/home/6410/opencv/opencv-2.4.2/
选择Build目录:/home/6410/opencv/opencv-2.4.2/build
点击Configure,保持generator为Unix Makefiles,
选择Specify options for cross-compiling,点击Next,
Operating System填写arm-linux
C Compilers填写/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc
C++ Compilers填写/opt/FriendlyARM/toolschain/4.5.1//bin/arm-linux-g++
程序库的Target Root填写/opt/FriendlyARM/toolschain/4.5.1/
然后点击Finish,点击Configure,产生配置列表,在其中
选择安装目录(CMAKE_INSTALL_PREFIX)为/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
去掉WITH_CUDA,WITH_TIFF勾选,点击Generate生成Makefile
修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt
#make
#make install
安装完毕