保姆级Linux系统安装并使用libpng攻略
一、libpng库
libpng是一款C语言编写的比较底层的读写PNG文件的跨平台的库。由于依赖于zlib库,所以在安装libpng时往往还需要安装zlib库。
二、库版本的选择与下载
我下载的地址是
https://jaist.dl.sourceforge.net/project/libpng/
下载的版本为:libpng-1.6.37
zlib-1.2.11
这两个版本我实测是可以使用的。
为什么要注意版本呢?因为某些较早版本的zlib库和现在的zlib库有的接口不一样,而对应的libpng库也有所不同。如果安装的版本不一致在编译库时就会报错。
三、安装
1.可以将下面的代码保存为一个shell脚本,放到压缩包同目录直接执行。
#zlib:
#解压:
tar -xf zlib-1.2.11.tar.gz && cd zlib-1.2.11
#安装
./configure
make
sudo make installcd ..
#libpng:
#解压
tar -xzvf libpng-1.6.37.tar.gz && cd libpng-1.6.37#安装
./configure
make
sudo make install
sudo ldconfig
2.由于某些系统可能自带或者在安装其他应用时就装上了zlib,为了避免安装的libpng与系统本身自带的zlib有冲突,所以创建一个文件夹用于安装libpng与zlib。
#!/bin/bash
#=====================================#
#zlib:
#解压:
tar -xf zlib-1.2.11.tar.gz && cd zlib-1.2.11
#安装
./configure \--prefix=/home/uos/libpng/install
make
sudo make install
make cleancd ..
#libpng:
#解压
tar -xzvf libpng-1.6.37.tar.gz && cd libpng-1.6.37#安装
./configure \--prefix=/home/uos/libpng/install \--with-zlib-prefix=/home/uos/libpng/install
make
sudo make install
make clean
注意:使用了./configure之后,make install需要加sudo
libpng有Makefile.am,在./configure之后会自动生成对应的Makefile.in和Makefile。
此种方法可以用于解决
/lib/libpng16.so.16: undefined reference to
`inflateValidate@ZLIB_1.2.9’ collect2: error: ld returned 1 exit
status
这类由于版本不对应的兼容性错误。有的系统可能由于环境配置问题,执行了./configure后在make时还是会优先找到系统内安装的zlib,这时如果还有这种错误,可以更换libpng版本来编译。
./configure介绍:
Configure脚本配置工具是autoconf的工具的基本应用。
四、测试
如果使用第一种方式安装的libpng的话。
使用gcc test.c -o test -lpng
直接链接进行编译,编译器会在系统目录中寻找相关链接的库文件
若使用的是第二种方式,需要指明链接目录:
g++ test1.cpp \
/home/stephane/programs/install/lib/libpng.a \
/home/stephane/programs/install/lib/libz.a \
-I/home/stephane/programs/install/include -o test
如上所示为静态链接,需注意直接指明库文件时不要加-L,同时使用-I指明头文件包含目录
分别在Ubuntu20、UOS、kylin系统进行了测试。
更新
使用cmake的小伙伴在链接libpng库时,需要保证使用的库在编译时加了-fPIC参数。即在./configure时后缀增加一个"-fPIC"
保姆级Linux系统安装并使用libpng攻略相关推荐
- 新手卖家选品参考,保姆级亚马逊选品攻略
星起航跨境:新手卖家选品参考,保姆级亚马逊选品攻略 没有经验的新卖家在入驻亚马逊之前,还没有想到准备售卖什么产品,就可以根据这三个数据来判断选择的产品是否合适. 1.购物车购买数量 大多数的消费者在购 ...
- linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略
Linux下VSFTP配置全攻略 [日期:2007-10-05] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] 4]如果要以系统中存在的普通用户登入FTP,也没有什么可以设置的, ...
- Linux 环境变量配置全攻略
Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...
- LINUX 下播放 DVD 全攻略 (关键字 DVD-ROM LiViD fifo OMS) (转)
LINUX 下播放 DVD 全攻略 (关键字 DVD-ROM LiViD fifo OMS) (转)[@more@]Linux 下播放 dvd 全攻略 推荐:bfreeboy 发表日期:2001年5 ...
- LINUX 下播放 DVD 全攻略 (关键字 DVD-ROM LiViD fifo OMS)
LINUX 下播放 DVD 全攻略 推荐:bfreeboy 发表日期:2001年5月23日 阅读次数:68 -------------------------------------------- ...
- win7下安装Linux实现双系统全攻略
win7下安装Linux实现双系统全攻略 听语音 http://jingyan.baidu.com/article/c275f6bacc3326e33c756743.html 分区http://jin ...
- Linux环境变量配置全攻略
本文转载自: Linux环境变量配置全攻略 - 悠悠i - 博客园 目录 Linux环境变量配置 Linux读取环境变量 Linux环境变量配置方法一:export PATH Linux环境变量配置方 ...
- Linux CentOS7配置ip地址攻略
本文为joshua317原创文章,转载请注明:转载自joshua317博客 Linux CentOS7配置ip地址攻略 - joshua317的博客 一.背景 公司新来一台服务器,系统已经装好了,操作 ...
- Linux下Web服务器架设攻略
Linux下Web服务器架设攻略 [收藏此页] [打印] [推荐] [挑错] 作者:小云 2004-12-23 内容导航: 概述 [IT168 专稿]今天我们来看看如何将Web服务器架在Lin ...
最新文章
- Matlab并行运算
- 聊一聊,用户画像的前世今生
- js导航条 二级滑动 模仿块级作用域
- 关于数据库查询优化的思考
- python的前端开发_Python开发【前端】:html
- 【stanford】梯度、梯度下降,随机梯度下降
- 逻辑分析题汇总(一)
- idea解决代码冲突与乱码
- 秒杀系统优化方案之缓存、队列、锁设计思路
- NASNET-【论文理解】
- 2017-2018-1 20155202 《信息安全系统设计基础》第4周学习总结
- ERROR Utils: Uncaught exception in thread stdout writer for python
- 我将进化成一条狗(10)——长寿秘诀
- 网站访问量统计 | hexo
- 微信从原版到现在所有界面图片_微信进入界面的图片有什么含义
- 解决微信企业号和公众号无法调用摄像头拍视频的问题
- 三次样条插值(附完整代码)
- alpine linux 简介
- 地理空间数据共享资源大汇总
- 手机开发实战99——MMS介绍6