编译libpng库 和 示例代码

C/C++第三方开源库的介绍和相关讨论
回复
头像
523066680
Administrator
Administrator
帖子: 573
注册时间: 2016年07月19日 12:14
联系:

编译libpng库 和 示例代码

帖子 523066680 »

http://www.libpng.org/pub/png/libpng.html
这个库需要zlib的支援

下载 libpng-1.6.26.tar.gz,解压

打开 MSYS2 Shell ,进入该目录
执行
$ ./configure

一切正常,执行
$ make

提示缺少zlib.h:
gcc -E -DHAVE_CONFIG_H -I. \ -DPNGLIB_LIBNAME='PNG16_0' -DPNGLIB_VERSION='1.6.26' -DSYMBOL_PREFIX='' -DP NG_NO_USE_READ_MACROS -DPNG_BUILDING_SYMBOL_TABLE pnglibconf.c > pnglibconf.tf1 pnglibconf.c:33:19: fatal error: zlib.h: No such file or directory # include <zlib.h> ^ compilation terminated. make: *** [Makefile:2153: pnglibconf.out] Error 1
用 everything 找到 mingw/include 目录中带有 zlib.h,
编辑makefile ,搜索 -I,转到 244 行,将
DEFAULT_INCLUDES = -I.
改为
DEFAULT_INCLUDES = -I. -IC:/MinGW/include

继续
$ make
$ make test
$ make install

一切正常
make install后相关文件会复制到 \msys64\usr\local 目录下

或者自己在编译目录中提取
头像
523066680
Administrator
Administrator
帖子: 573
注册时间: 2016年07月19日 12:14
联系:

单独编译示例程序pngtest.c

帖子 523066680 »

假设相关库文件放在以下位置:
[ascii]D:.
├─include
│ png.h
└─lib
libpng16.a
libpng16.la
libpng16.lai[/ascii]
执行
gcc pngtest.c -ID:/Lib/libpng/include -LD:/Lib/libpng/lib -lpng16

提示缺少zlib.h
pngtest.c:73:20: fatal error: zlib.h: No such file or directory # include "zlib.h" ^ compilation terminated.
已知mingw include 目录有zlib.h,在mingw/lib目录找到对应的库文件为libz.a
修改编译命令重新编译:
gcc pngtest.c -ID:/Lib/libpng/include -IC:/mingw/include -LD:/Lib/libpng/lib -LC:/mingw/lib -lpng16 -lz

无误
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客