SAIL-IMX7D开发板截屏工具gsnap移植 点击:433 | 回复:0



dianyudianzi

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 0回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2019年7月10日
发表于:2019-07-10 10:02:32
楼主

PC机:ubuntu 14.04.5

开发板:SAIL-IMX7D

交叉编译器:arm-linux-gnueabihf-gcc

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可以不用移植。

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

https://pan.baidu.com/s/1VgyXmdE4Kcz6GUp1ZcVUwQ   提取码:qf77

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

图片1 - 副本.png 

2、各个依赖库的交叉编译次序:jpeg --> zlib --> libpng --> gsnap 先进行libjpeg编译,进入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下生成头文件和依赖库,如下图所示:

图片5.png 

3.进入zlib-1.2.11目录,执行如下命令:

# export CC=arm-linux-gnueabihf-gcc

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

# make -j4

# make install

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

 图片6.png

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

图片7.png

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

图片8.png 

修改完成后,在libpng源码目录下,执行命令

#make -j4

#make install

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

 图片9.png 

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

 

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

图片12.png 

gsnap_install目录下,执行“make”命令,编译成功后,会在该目录下生成可执行文件gsnap。

6.把gsnap可执行文件复制到开发板文件系统/bin目录。把gsnap_install/lib目录下的动态库复制到开发板文件系统/lib目录

7.在开发板超级终端执行如下命令进行截图

#gsnap fb.jpg /dev/fb0




热门招聘
相关主题

官方公众号

智造工程师