Andesight平台上编译libpng库

无知代表无畏,以为在andesight的IDE平台上移植libpng源码生成的库,就可以成功解码png图片,虽然最终显示图片并未靠库,库只是对源码进行封装,只对用户提供接口不公开源码,然而我的目标是实现png图片显示,所以并不需要生成库,但通过不断的与Andesight的技术支持沟通,下面总结一下在Andesight平台编译生成库的方法。​

  Andesight平台手册给的很简单,只是教你如何用很简单的hello world代码生成库,显然达不到我们移植libpng源码生成库的要求。做过移植的朋友都知道,源码生成库一般有以下几个过程 :​源码中找到对应平台的configure文件,通过配置后生成Makefile,然后make就生成库。也就是编译代码一般用源码生成的Makefile文件,而不用Andesight自动生成的Makefile(如果只提供程序加到Andesight的IDE平台,IDE会自动提供Makefile,而不是源码“本身”自带的Makefile)。

  总的来说,我们要编译源码生成库,就必须依赖源码根据不同的硬件环境配置生成的Makefile,这样编译过程中,几乎不会遇到什么太大的问题(笔者试过不用库自带的Makefile,编译了半天而且还遇到好多嵌入式汇编,很是让人无能为力)。

  那么如何在Andesight平台编译生成库呢?下面屏记性说个大概。首先,找到源码首层的configure文件,我记得里面写make,然后没其它了,也就是不用配置,后面直接执行Makefile。所以先找到对应平台的makefile,把到拷贝到代码首层,修改成Makefile;其次,在IDE上建立Makefile工程(注意不是库工程,如果是库工程,系统会用IDE生成Makefile,是不对的);把上面的代码导入到该 工程中,编译。系统会直接到到configure,自动make,基本下面会很顺畅的编译、链接生成libpng.a库。同理zlib库和libpng库一样,可以生成库。

  编译libpng.a出来后,系统会顺便生成pngtest,以方便测试库能否使用,但会出现“-lz”参数,参阅度妈说,这个问题出现是因为没装zlib库出现的,所以可以先把zlib库也给编出来,然后生成名字改为libz.a,这下-lz才可以找到zlib库,这只是生成pngtest需要解决的,如不需要生成pngtest,可以不管后面链接的问题。

你可能感兴趣的:(Andesight平台上编译libpng库)