自主编译的嵌入式linux,嵌入式Linux开发环境搭建-(7)嵌入式Linux开发板截屏工具gsnap移植...

嵌入式Linux开发板截屏工具gsnap移植

PC机:ubuntu16.04.2 LTS

开发板:i.MX6UL

交叉编译器:arm-linux-gnueabihf-gcc (5.3.1 20160412)

PC机操作目录:/opt/work/tools/gsnap,如果没有此目录,请自行新建。

截屏工具gsnap的移植,需要依赖以下库文件:libpng、libjpeg、zlib、libmath。各个库文件使用的版本如下:

libpng-1.6.34.tar.xz 、jpegsrc.v9c.tar.gz 、 zlib-1.2.11.tar.xz

libmath由于交叉编译器自带,因此libmath可以不用移植。

以上的依赖库源码,可以从以下链接获取:

以下是整个移植过程:

1、下载完所有库源码后,上传到ubuntu中进行解压,解压成功后,如下图所示:

6abf32eab34d1ce567bbb6558f5b0916.png

2、各个依赖库的交叉编译次序:jpeg --> zlib --> libpng --> gsnap,先在ubuntu创建好各个依赖库对应的安装目录,如下图所示:

af1f9168bb3dbe84b87ebdb1f41c5ee3.png

3、先进行libjpeg编译,在ubuntu中执行以下命令,进行交叉编译:

# cd /opt/work/tools/gsnap/jpeg-9c

# export CC=arm-linux-gnueabihf-gcc

# ./configure --host=arm-linux-gnueabihf --prefix=/opt/work/tools/gsnap/jpeg_install

# make -j4

# make install

编译成功后,在安装目录jpeg_install下生成头文件和依赖库,如下图所示:

e91075d5ae734945ee87d5dd3cef10c9.png

4、由于zlib是libpng的依赖,因此在交叉编译libpng之前,必须首先编译zlib。在ubuntu中执行以下命令,进行zlib的交叉编译:

# cd /opt/work/tools/gsnap/zlib-1.2.11

# export CC=arm-linux-gnueabihf-gcc

# ./configure --prefix=/opt/work/tools/gsnap/zlib_install

# make -j4

# make install

编译成功后,在安装目录zlib_install下生成头文件和依赖库,如下图所示:

44fb8e7225065e95e57342cf090be501.png

5、交叉编译zlib成功后,接着就可以编译libpng了。与上述的两个库编译方式不同,由于libpng源码里面提供了Linux平台的Makefile文件,因此,可以直接修改Makefile然后完成编译工作。执行以下命令,进入libpng源码目录,然后进行Makefile复制。

# cd /opt/work/tools/gsnap/libpng-1.6.34

# cp scripts/makefile.linux  Makefile  -a

然后修改Makefile文件,如下图所示:

e47075ac2b9f240d8aa713a9f7ab0265.png

修改完成后,在libpng源码目录下,执行以下命令,进行编译和安装。

# make -j4

# make install

交叉编译成功后,在安装目录libpng_install下生成头文件和依赖库,如下图所示:

7a9b4a86b1eb94bda0341881fa363678.png

6、最后,交叉编译gsnap,为了方便,我们把之前成功编译的三个依赖库,里面的lib文件和include文件,都统一放到/opt/work/tools/gsnap/gsnap_install目录下,我们在gsnap_install目录下新建lib目录和includes目录,然后把前面三个依赖库的相关头文件和动态库都复制到这两个目录,复制完成后,如下图所示:

dabccbdb9217562bb15453bc02504cdb.png

0f2f7bafb0cbd615d24b27fff03a4819.png

7、头文件和依赖库复制完成后,在gsnap_install目录下,新建一个Makefile文件,内容如下图所示:

5e3c4f168ebaab47a67a814cf2958bd8.png

Makefile文件指定了gsnap交叉编译时所使用的编译器为arm-linux-gnueabihf-gcc,需要编译的源文件为gsnap.c,交叉编译时,需要依赖gsnap_install/lib目录下的动态库和gsnap_install/includes目录下的头文件。

8、在gsnap_install目录下,执行“make”命令,编译成功后,会在该目录下生成可执行文件gsnap。把gsnap可执行文件复制到开发板的/bin目录。把gsnap_install/lib目录下的动态库复制到开发板的/lib目录,复制完成后,如下图所示:

a0872fcf24a331bb2595e87fde28e3c0.png

48b2ef39f9575c8c1b302ed63ffa7c5a.png

9、执行以下命令,可以进行屏幕截图:gsnap  fb.jpg  /dev/fb0

10、截图效果和实物拍照效果对比,如下图所示:

9c2b41a19d151d54878f9b4f5343fe5b.png

b9e5a755954dbdec60b0ec1e8eac9a45.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值