目录
1.系统(ubuntu16.04 64位)
2.下载
3.编译、安装
4.测试
5.参考
libpng是官方的 PNG 参考库。它支持几乎所有 PNG 功能,具有可扩展性,并且已经过 23 年多的广泛测试。
libpng 可作为 ANSI C (C89) 源代码使用,并且需要zlib 1.0.4或更高版本(出于性能和安全原因,建议使用1.2.5或更高版本)
1.系统(ubuntu16.04 64位)
Linux fly-vm 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC x86_64 x86_64 x86_64 GNU/Linux
2.下载
libpng的主页-----》libpng-1.6.37.tar.gz
zlib主页------------》zlib-1.2.11.tar.gz
3.编译、安装
#### 编译安装libpng[fly@fly-vm LIBPNG]$ wget /libpng/libpng-1.6.37.tar.gz[fly@fly-vm LIBPNG]$ wget /zlib-1.2.11.tar.gz[fly@fly-vm LIBPNG]$ tar -zxvf libpng-1.6.37.tar.gz[fly@fly-vm LIBPNG]$ cd libpng-1.6.37/[fly@fly-vm libpng-1.6.37]$ ./configure --prefix=$PWD/_install[fly@fly-vm libpng-1.6.37]$ make && make install
### 查看编译安装结果[fly@fly-vm libpng-1.6.37]$ cd _install/[fly@fly-vm _install]$ tree.├── bin│ ├── libpng16-config│ ├── libpng-config -> libpng16-config│ ├── pngfix│ └── png-fix-itxt├── include│ ├── libpng16│ │ ├── pngconf.h│ │ ├── png.h│ │ └── pnglibconf.h│ ├── pngconf.h -> libpng16/pngconf.h│ ├── png.h -> libpng16/png.h│ └── pnglibconf.h -> libpng16/pnglibconf.h├── lib│ ├── libpng16.a│ ├── libpng16.la│ ├── libpng16.so -> libpng16.so.16.37.0│ ├── libpng16.so.16 -> libpng16.so.16.37.0│ ├── libpng16.so.16.37.0│ ├── libpng.a -> libpng16.a│ ├── libpng.la -> libpng16.la│ ├── libpng.so -> libpng16.so│ └── pkgconfig│├── libpng16.pc│└── libpng.pc -> libpng16.pc└── share└── man├── man3│ ├── libpng.3│ └── libpngpf.3└── man5└── png.59 directories, 23 files
为LIBPNG的可执行二进制文件、头文件及库文件在/usr目录下创建软链接
.PHONY: all link unlink test makedirSRCDIR = $(PWD)DSTDIR = /usrLNK = sudo ln -sRMK = sudo rm -rfBIN_FILE_0= bin/libpng16-configBIN_FILE_1= bin/pngfixBIN_FILE_2= bin/png-fix-itxtINC_FILE_0= include/libpng16/pngconf.hINC_FILE_1= include/libpng16/png.hINC_FILE_2= include/libpng16/pnglibconf.hLIB_FILE_0= lib/libpng16.aLIB_FILE_1= lib/libpng16.laLIB_FILE_2= lib/libpng16.so.16.37.0all:linkmakedir:sudo mkdir $(DSTDIR)/include/libpng16/link:makedir$(LNK) $(SRCDIR)/$(BIN_FILE_0) $(DSTDIR)/$(BIN_FILE_0)$(LNK) $(SRCDIR)/$(BIN_FILE_1) $(DSTDIR)/$(BIN_FILE_1)$(LNK) $(SRCDIR)/$(BIN_FILE_2) $(DSTDIR)/$(BIN_FILE_2)$(LNK) $(SRCDIR)/$(INC_FILE_0) $(DSTDIR)/$(INC_FILE_0)$(LNK) $(SRCDIR)/$(INC_FILE_1) $(DSTDIR)/$(INC_FILE_1)$(LNK) $(SRCDIR)/$(INC_FILE_2) $(DSTDIR)/$(INC_FILE_2)$(LNK) $(SRCDIR)/$(LIB_FILE_0) $(DSTDIR)/$(LIB_FILE_0)$(LNK) $(SRCDIR)/$(LIB_FILE_1) $(DSTDIR)/$(LIB_FILE_1)$(LNK) $(SRCDIR)/$(LIB_FILE_2) $(DSTDIR)/$(LIB_FILE_2)$(LNK) $(SRCDIR)/$(LIB_FILE_0) $(DSTDIR)/lib/libpng.a$(LNK) $(SRCDIR)/$(LIB_FILE_1) $(DSTDIR)/lib/libpng.la$(LNK) $(SRCDIR)/$(LIB_FILE_2) $(DSTDIR)/lib/libpng.so$(LNK) $(SRCDIR)/$(LIB_FILE_2) $(DSTDIR)/lib/libpng16.so$(LNK) $(SRCDIR)/$(LIB_FILE_2) $(DSTDIR)/lib/libpng16.so.16unlink:$(RMK) $(DSTDIR)/$(BIN_FILE_0) && \$(RMK) $(DSTDIR)/$(BIN_FILE_1) && \$(RMK) $(DSTDIR)/$(BIN_FILE_2) && \$(RMK) $(DSTDIR)/$(INC_FILE_0) && \$(RMK) $(DSTDIR)/$(INC_FILE_1) && \$(RMK) $(DSTDIR)/$(INC_FILE_2) && \$(RMK) $(DSTDIR)/$(LIB_FILE_0) && \$(RMK) $(DSTDIR)/$(LIB_FILE_1) && \$(RMK) $(DSTDIR)/$(LIB_FILE_2) && \$(RMK) $(DSTDIR)/include/libpng16 && \$(RMK) $(DSTDIR)/lib/libpng.* $(DSTDIR)/lib/libpng16.*test:@echo $(SRCDIR)@echo $(DSTDIR)
### 编译、安装zlib[fly@fly-vm LIBPNG]$ tar -zxvf zlib-1.2.11.tar.gz[fly@fly-vm LIBPNG]$ cd zlib-1.2.11/[fly@fly-vm zlib-1.2.11]$ ./configure --prefix=$PWD/_install[fly@fly-vm zlib-1.2.11]$ make && make install
### 查看zlib编译结果[fly@fly-vm zlib-1.2.11]$ cd _install/[fly@fly-vm _install]$ tree.├── include│ ├── zconf.h│ └── zlib.h├── lib│ ├── libz.a│ ├── libz.so -> libz.so.1.2.11│ ├── libz.so.1 -> libz.so.1.2.11│ ├── libz.so.1.2.11│ └── pkgconfig│└── zlib.pc└── share└── man└── man3└── zlib.36 directories, 8 files
4.测试
5.参考
5.1.pkg-config原理及用法