检查linux是否安装zlib,Linux下安装zlib
zlib 程序庫(kù)是著名的壓縮引擎,zlib 也是著名的gzip (GNU zip) 所采用的壓縮引擎。 如何安裝zlib庫(kù)? 一、 首先安裝zlib,從其官方網(wǎng)站下載最新的源程序,網(wǎng)址:
zlib
程序庫(kù)是著名的壓縮引擎,zlib也是著名的gzip (GNU zip)所采用的壓縮引擎。
如何安裝zlib庫(kù)?
一、 首先安裝zlib,從其官方網(wǎng)站下載最新的源程序,網(wǎng)址:。
在然后將下載的文件解壓釋放到目錄。解壓后文件夾中自帶了合適的makefile:
當(dāng)使用make命令進(jìn)行編譯時(shí),會(huì)要求先運(yùn)行同一目錄中的configure文件。
打開(kāi)configure文件我們可以發(fā)現(xiàn)是Shell Script,所以運(yùn)行sudo sh
configure來(lái)執(zhí)行該腳本。
二、 然后,通過(guò)查看makefiles文件,我們通過(guò)make命令編譯該程序庫(kù),編譯成功后(用root權(quán)限),通過(guò)make install來(lái)安裝該庫(kù),也就是將頭文件和lib文件自動(dòng)放置到/usr/include和/usr/lib中。
三、 安裝完成后,就可以編寫(xiě)簡(jiǎn)單的壓縮程序了,例如簡(jiǎn)單的示例如下:
#include
#include
#include
#include
#include
int main(int argc,char **argv[])
{
char msg[1000]="123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n";
char buf[1000];
char result[1000];
unsigned long len, lenresult;
printf("msg size:%d\n", sizeof(msg));
len = 1000;
compress(buf, &len, msg, sizeof(msg) );
printf("buf size:%d\n", len);
lenresult=1000;
uncompress(result,&lenresult, buf, len );
printf("result size:%d\n", lenresult);
printf("result:%s\n", result);
return 0;
}運(yùn)行后的結(jié)果為:
其中函數(shù)
1、int compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
compress函數(shù)將source緩沖區(qū)中的內(nèi)容壓縮到dest緩沖區(qū)。sourceLen表示source緩沖區(qū)的大小(以字節(jié)計(jì))。注意函數(shù)的第二個(gè)參數(shù)destLen是傳址調(diào)用。當(dāng)調(diào)用函數(shù)時(shí),destLen表示dest緩沖區(qū)的大小,destLen> (sourceLen
+ 12)*100.1%。當(dāng)函數(shù)退出后,destLen表示壓縮后緩沖區(qū)的實(shí)際大小。此時(shí)destLen/sourceLen正好是壓縮率。
compress若成功,則返回 Z_OK;若沒(méi)有足夠內(nèi)存,則返回Z_MEM_ERROR;若輸出緩沖區(qū)不夠大,則返回Z_BUF_ERROR。
2、int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
uncompress 函數(shù)將 source 緩沖區(qū)的內(nèi)容解壓縮到 dest 緩沖區(qū)。sourceLen 是 source 緩沖區(qū)的大小(以字節(jié)計(jì))。注意函數(shù)的第二個(gè)參數(shù) destLen 是傳址調(diào)用。當(dāng)調(diào)用函數(shù)時(shí),destLen
表示 dest 緩沖區(qū)的大小, dest 緩沖區(qū)要足以容下解壓后的數(shù)據(jù)。在進(jìn)行解壓縮時(shí),需要提前知道被壓縮的數(shù)據(jù)解壓出來(lái)會(huì)有多大。這就要求在進(jìn)行壓縮之前,保存原始數(shù)據(jù)的大小(也就是解壓后的數(shù)據(jù)的大小)。這不是 zlib 函數(shù)庫(kù)的功能,需要我們做額外的工作。當(dāng)函數(shù)退出后,destLen 是解壓出來(lái)的數(shù)據(jù)的實(shí)際大小。
uncompress 若成功,則返回 Z_OK ;若沒(méi)有足夠內(nèi)存,則返回 Z_MEM_ERROR;若輸出緩沖區(qū)不夠大,則返回Z_BUF_ERROR。若輸入數(shù)據(jù)有誤,則返回 Z_DATA_ERROR。
程序編譯記得加上-lz ,制定庫(kù)文件。
,
總結(jié)
以上是生活随笔為你收集整理的检查linux是否安装zlib,Linux下安装zlib的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux终端运行fasterrcnn,
- 下一篇: linux 安装redis4.0.6,R