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
--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命令
执行后,可以看到/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的。
这里暂时用不到
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的。
这里暂时用不到
相关文章推荐
- OpenCV2.0.0移植到ARM9(一)(JZ2440----S3c2440)
- OpenCV2.0.0移植到ARM9(五)(JZ2440----S3c2440)
- OpenCV2.0.0移植到ARM9(三)(JZ2440----S3c2440)
- OpenCV移植到ARM9
- linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile
- Opencv-2.0.0的ARM移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01)
- linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile
- linux 2.6.32 在arm9(s3c2440)平台的移植 - LCD背光驱动
- OpenCV-2.0.0移植到海思hi3520(ARM11)
- linux 2.6.32 在arm9(s3c2440)平台的移植 - LCD背光驱动
- opencv 移植 S3C2440
- linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile(2)
- Qt2.2.0移植到ARM9(四)(JZ2440----S3c2440)
- linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile(2)
- OpenCV移植到ARM9
- 新版U-boot2012.04.01移植(一)(JZ2440-S3C2440)
- linux 下 opencv2.0 的移植 (ARM9)
- mini6410成功移植OPENCV-2.0.0实现人脸检测
- mini6410成功移植OPENCV-2.0.0实现人脸检测
- linux 下 opencv2.0 的移植 (ARM9)