libpng的使用 | 在Linux系统下编译、安装与使用

目录

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 2021 x86_64 x86_64 x86_64 GNU/Linux

2.下载

libpng的主页-----》libpng-1.6.37.tar.gz

zlib主页------------》zlib-1.2.11.tar.gz

(2条消息) libpng使用_化茧成蝶007的博客-CSDN博客

3.编译、安装

#### 编译安装libpng
[fly@fly-vm LIBPNG]$ wget https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz
[fly@fly-vm LIBPNG]$ wget http://www.zlib.net/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.5

9 directories, 23 files

为LIBPNG的可执行二进制文件、头文件及库文件在/usr目录下创建软链接

.PHONY: all link unlink test makedir

SRCDIR  = $(PWD)
DSTDIR  = /usr

LNK             = sudo ln -s
RMK             = sudo rm -rf

BIN_FILE_0      = bin/libpng16-config
BIN_FILE_1      = bin/pngfix
BIN_FILE_2      = bin/png-fix-itxt

INC_FILE_0      = include/libpng16/pngconf.h
INC_FILE_1      = include/libpng16/png.h
INC_FILE_2      = include/libpng16/pnglibconf.h

LIB_FILE_0      = lib/libpng16.a
LIB_FILE_1      = lib/libpng16.la
LIB_FILE_2      = lib/libpng16.so.16.37.0


all:link

makedir:
        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.16



unlink:
        $(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.3

6 directories, 8 files

4.测试

5.参考

5.1.pkg-config原理及用法

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在Linux编译安装OpenCV-Python的步骤: 1. 安装依赖项 在终端中输入以下命令安装OpenCV-Python所需的所有依赖项: ``` sudo apt-get update sudo apt-get install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev \ libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev \ python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev ``` 2. 下载OpenCV源代码 从OpenCV的官方网站(https://opencv.org/releases/)下载最新版本的源代码,并将其解压缩到您的系统中: ``` wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip unzip opencv.zip ``` 3. 下载OpenCV-contrib源代码 从OpenCV的官方网站(https://opencv.org/releases/)下载最新版本的OpenCV-contrib源代码,并将其解压缩到您的系统中: ``` wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/master.zip unzip opencv_contrib.zip ``` 4. 编译OpenCV 在终端中进入OpenCV源代码目录并创建一个新的构建目录: ``` cd opencv-master mkdir build cd build ``` 使用cmake配置OpenCV的构建选项: ``` cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=OFF \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-master/modules \ -D BUILD_EXAMPLES=ON .. ``` 请注意,上面的命令中的OPENCV_EXTRA_MODULES_PATH参数指定了OpenCV-contrib源代码目录中的modules子目录。 接下来,使用以下命令编译OpenCV: ``` make -j4 ``` 请注意,上面的命令中的-j参数指定了使用多少个CPU核心进行编译。 最后,使用以下命令安装OpenCV: ``` sudo make install ``` 5. 安装OpenCV-Python 在终端中输入以下命令安装OpenCV-Python: ``` sudo apt-get install python3-opencv ``` 6. 测试OpenCV-Python 打开Python解释器并导入OpenCV模块: ``` import cv2 ``` 如果没有任何错误消息,则说明OpenCV-Python已成功安装

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值