您的位置:首页 > 运维架构

OpenCV2.0.0移植到ARM9(二)(JZ2440----S3c2440)

2016-12-30 19:49 381 查看
OpenCV2.0.0移植到ARM9(二)(JZ2440----S3c2440)

1、交叉编译libjpeg
为了使OpenCV能处理jpeg图像,我们必须事先交叉编译好libjpeg这里使用的版本是jpegsrc.v6b。

下载地址:https://sourceforge.net/projects/libjpeg/files/libjpeg/6b/
这里使用的安装包:jpegsrc.v6b.tar.gz。

(1)解压、配置
jpegsrc.v6b.tar.gz放在/work/system/目录下.

解压:$tar  –zvxf  jpegsrc.v6b.tar.gz 
进入目录:$cd   jpeg-6b 



在/work/system/目录下新建一个libjpeg-arm目录,命令为:$sudo mkdir libjpeg-arm。

清除命令:$sudo make distclean

配置:$./configure --prefix=/work/system/libjpeg-arm --exec-prefix=/work/system/libjpeg-arm --enable-shared --enable-static



--prefix=/work/libjpeg-arm : 执行make install 后,会将与体系无关的文件拷贝到此目录下.
--exec-prefix=/work/libjpeg-arm : 执行make install 后,会将与体系无关的文件拷贝到此目录下,即将一些可执行程序、动态链接库和静态链接库拷贝到此目录的相应目录下
--enable-shared : 用GNU libtool 编译成动态链接库.

(2)修改生成的Makefile文件:

修改/work/system/jpeg-6b目录中的Makefile文件。
 # The name of your C compiler:

       CC= gcc   该成 CC= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc(根据交叉编译器的位置修改)


       
# library (.a) file creation command

       AR= ar rc  该成 AR=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-ar rc  (同上)



 # second step in .a creation (use "touch" if not needed)

       AR2= ranlib  该成 AR2=
/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-ranlib (同上



在/work/system/libjpeg-arm/目录下新建man/man1,include,lib,bin四个目录,然后执行make命令
$sudo mkdir man
$cd man
$sudo mkdir man1
$sudo mkdir lib
$sudo mkdir bin

在/work/system/jpeg-6b/目录下执行以下命令:

$sudo make
$sudo make install 

执行后,可以看到/work/system/libjpeg-arm/各文件夹中的内容。
bin目录下文件:



include目录下文件:



lib目录下文件:



/man/man1目录下文件:



检测/work/system/libjpeg-arm/lib/目录下生成的库是否为arm版,执行命令:$file libjpeg.so.62.0.0



(3)文件拷贝

 将/work/system/libjpeg-arm/include/中(jconfig.h, jerror.h, jmorecfg.h, jpeglib.h)四个头文件拷贝到:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include中。
执行命令:$sudo cp jconfig.h jerror.h jmorecfg.h jpeglib.h   /usr/local/arm/4.3.2/arm-none-linux-gnueabi/include

   将/work/system/libjpeg-arm/lib中(libjpeg.la, libjpeg.so, libjpeg.so.62, libjpeg.so.62.0.0)四个库文件拷贝到:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/lib中

执行命令:$sudo cp libjpeg.la  libjpeg.so libjpeg.so.62  libjpeg.so.62.0.0   /usr/local/arm/4.3.2/arm-none-linux-gnueabi/lib

其中,/usr/local/arm/4.3.2/目录是交叉编译器arm-linux-gcc-4.3.2的安装目录。



执行完以上操作后执行以下命令检查库文件是否已正确安装:

$ arm-linux-gcc -print-file-name=libjpeg.so 

如果输出为"libjpeg.so"的路径,说明安装正确,否则,安装不正确。



至此libjpeg交叉编译完成。

2、交叉编译 x264,xvid,ffmpeg
    为了使OpenCV能处理视频,要事先交叉编译ffmpeg,而ffmpeg又是依赖x264和xvid的。
这里暂时用不到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: