检查linux是否安装zlib,Linux下安装zlib
zlib 程序庫是著名的壓縮引擎,zlib 也是著名的gzip (GNU zip) 所采用的壓縮引擎。 如何安裝zlib庫? 一、 首先安裝zlib,從其官方網站下載最新的源程序,網址:
zlib
程序庫是著名的壓縮引擎,zlib也是著名的gzip (GNU zip)所采用的壓縮引擎。
如何安裝zlib庫?
一、 首先安裝zlib,從其官方網站下載最新的源程序,網址:。
在然后將下載的文件解壓釋放到目錄。解壓后文件夾中自帶了合適的makefile:
當使用make命令進行編譯時,會要求先運行同一目錄中的configure文件。
打開configure文件我們可以發現是Shell Script,所以運行sudo sh
configure來執行該腳本。
二、 然后,通過查看makefiles文件,我們通過make命令編譯該程序庫,編譯成功后(用root權限),通過make install來安裝該庫,也就是將頭文件和lib文件自動放置到/usr/include和/usr/lib中。
三、 安裝完成后,就可以編寫簡單的壓縮程序了,例如簡單的示例如下:
#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;
}運行后的結果為:
其中函數
1、int compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
compress函數將source緩沖區中的內容壓縮到dest緩沖區。sourceLen表示source緩沖區的大小(以字節計)。注意函數的第二個參數destLen是傳址調用。當調用函數時,destLen表示dest緩沖區的大小,destLen> (sourceLen
+ 12)*100.1%。當函數退出后,destLen表示壓縮后緩沖區的實際大小。此時destLen/sourceLen正好是壓縮率。
compress若成功,則返回 Z_OK;若沒有足夠內存,則返回Z_MEM_ERROR;若輸出緩沖區不夠大,則返回Z_BUF_ERROR。
2、int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
uncompress 函數將 source 緩沖區的內容解壓縮到 dest 緩沖區。sourceLen 是 source 緩沖區的大小(以字節計)。注意函數的第二個參數 destLen 是傳址調用。當調用函數時,destLen
表示 dest 緩沖區的大小, dest 緩沖區要足以容下解壓后的數據。在進行解壓縮時,需要提前知道被壓縮的數據解壓出來會有多大。這就要求在進行壓縮之前,保存原始數據的大小(也就是解壓后的數據的大小)。這不是 zlib 函數庫的功能,需要我們做額外的工作。當函數退出后,destLen 是解壓出來的數據的實際大小。
uncompress 若成功,則返回 Z_OK ;若沒有足夠內存,則返回 Z_MEM_ERROR;若輸出緩沖區不夠大,則返回Z_BUF_ERROR。若輸入數據有誤,則返回 Z_DATA_ERROR。
程序編譯記得加上-lz ,制定庫文件。
,
總結
以上是生活随笔為你收集整理的检查linux是否安装zlib,Linux下安装zlib的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux终端运行fasterrcnn,
- 下一篇: 超级赛亚人四是谁画的啊?