① 谁用过linux里的zlib
我下了zlib,解压放在了linux服务器下,自己编了个程序
#include <iostream>
#include <vector>
#include "zlib.h"
using namespace std;
int main()
{
const unsigned char strSrc[] = "jasddsfsfaffafasd";
unsigned char buff[1024] = {0}, strDst[1024] = {0};
unsigned long srcLen = sizeof(strSrc), bufLen = sizeof(buff), dstLen = sizeof(strDst);
//压缩
compress(buff, &bufLen, strSrc, srcLen);
//解压缩
uncompress(strDst, &dstLen, buff, bufLen);
cout << strDst << endl;
return 0;
}
但是程序编译出错
undefined reference to `compress'
undefined reference to `uncompress'
linux下不会使用库,所以出错了,哪位能帮我详细的说下linux下怎么使用库的。
答:你把zlib包解压后要编译一下,它会生成一个zlib.so之类的库文件,
编译的时候引用这个库文件就可以#include"zlib.h"了,
就像$ gcc -o z z.c -lz
z就是生成的可执行文件,z.c就是你的代码,-lz就是引用zlib.so了
引用 4 楼 haihai05 的回复:换个问法,写的那个简单的程序为什么会报那样的错呢?不是说给例子。主要是想明白怎么样在linux下使用像zlib包这样的东东的。是直接解压后放在linux下就可以#include"zlib.h"
给自己的程序服务了吗?如果是但是上面那个为什么不对呢?引用 1 楼 showman 的回复:
zlib包不是有个example.c吗?
一个极简单的例程:
$ cat z.c
#include <stdio.h>
...
② 我用zlib 中的gzwrite 写了一个文件,怎么用Linux命令解压
加上后缀再解压试试看吧
③ Linux 下使用zlib库的crc32函数问题
不知道crc32这个函数还可以接力着用,
你仔细看看吧
getline + getline + ... 把内容读进缓冲区 跟一次性把所有内容读进缓冲区是一样的么。
getline 是不是去掉每行的\r\n啊?
④ linux中使用qt调用zlib库需要添加哪些头文件
准备工作:首先,最不可思议的,是要在Linux下把QT编译一遍,因为库都是一样的,需要的就是一些Windows下的qmake、moc、uic之类的工具而已。因为QT源码很多地方不能在Windows下面交叉编译通过,虽然我改了一些代码和配置(一会儿我贴出补丁来),但我只用它编译了qtbase、qtdeclarative这两个模块和qttools模块中的一部分。
Linux下的编译可以参照我之前写的这篇文章。参考配置:
开发包:
./configure -extprefix /opt/qt/5.2.1/arm -prefix /usr -plugindir /usr/lib/qt/plugins -importdir /usr/lib/qt/imports -qmldir /usr/lib/qt/qml -make libs -xplatform linux-arm-gnueabi-g++ -opengl es2 -confirm-license -opensource -xcb -xinput2 -nomake examples -nomake tests -qt-zlib -qt-xcb -dbus -largefile -cups -no-fontconfig -glib -gtkstyle -qt-freetype -sysroot /opt/sysroot-arm -mysql_config /opt/sysroot-arm/usr/bin/mysql_config -v
⑤ 在Linux下,用zlib写解压文件的C程序,需要事先知道文件压缩前的大小么怎么得到
.gz文件的最后4字节就是压缩前的原长度(ISIZE),并且倒数第二个4字节是压缩前专原buffer的CRC32冗余校验值。参见标准文属档 rfc1952 (https://tools.ietf.org/html/rfc1952).
⑥ 如何在linux平台下使用C++语言实现多文件的压缩解压缩(使用zlib依赖库)必重谢!
由于Unix系一贯坚持功能分离,所以通常是先tar再gzip来完成多文件一次压缩。
开发中一般是借助zlib-X.X.X.tar.gzzlib-X.X.X.tarzlib-X.X.Xcontribminizip实例中的接口:
ZLib可能并不是一个针对ZIP文件的库,它只是一个针对gzip以及deflate算法的库。它提供了一个叫做minizip
(contribminizip)例子来给出操作ZIP文件的方法。下文将从ZLib出发,归结出两个傻瓜接口:BOOLZipCompress(LPCTSTRlpszSourceFiles,LPCTSTRlpszDestFile);
BOOLZipExtract(LPCTSTRlpszSourceFile,LPCTSTRlpszDestFolder);
要引入的源文件
ZLib主目录下的代码,除minigzip.c、example.c外;
contribminizip下的代码,除minizip.c、miniunz.c外。
相关API
虽
然minizip更像是个例子,但是除去其主程序minizip.c和miniunz.c后,剩下的部分我们可以看作是ZLib
的一个上层库,它封装了与ZIP文件格式相关的操作。而minizip.c和miniunz.c
就是我们要改写的——把它从命令行程序改为上述傻瓜接口。minizip.c和miniunz.c中用到的API主要有:
压缩相关:
zipOpen64
zipClose
zipOpenNewFileInZip
zipCloseFileInZip
zipWriteInFileInZip
解压相关:
unzOpen64
unzClose
unzGetGlobalInfo64
unzGoToNextFile
unzGetCurrentFileInfo64
unzOpenCurrentFile
unzCloseCurrentFile
unzReadCurrentFile
想必看到这些名字都能猜到怎么用了吧。好的接口果然能带给人愉悦的。minizip中的这些函数有的是带“64”的有的是不带的,有的还有“2”、“3”、“4”版本。这里一律用带64的,不带“2”、“3”、“4”的。
来源参考:http://www.cppblog.com/Streamlet/archive/2010/09/22/127368.html
⑦ linux下怎么使用zlib库
zlib 没有可执行文件吧?只是几个动态连接库文件。而且文件名也肯定不是 zlib 这四个字母。 另外,Linux 没有 命令。没这东西,whereis 没有提示很正常埃
⑧ linux怎么安装zlib系统配置
在linux命令行上查询一下zlib的软件地址,然后使用浏览器打开即可,如下图所示
大家也可以在网络上进行搜索,不过一定要注意安全哦,避免下载到一些不干净的软件,所以这点需要注意一下
【参考资料后面附官网下载地址】
END
Gcc编译安装zlib源码包并配置使用
使用tar 命令进行解压出来,然后进入到安装目录,如下图所示
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
使用./configure --help可以查看编译的选项,我们这里使用简单的选项安装即可
进入安装文件目录,然后 使用如下命令进行安装
./configure --prefix=/data/progam/zlib
make
make install
如下图所示
再进行配置一下系统的文件,加载刚才编译安装的zlib生成的库文件
vi /etc/ld.so.conf.d/zlib.conf
加入如下内容后保存退出
/data/program/zlib/lib
==============================
也就是添加安装目录的文件路径,库文件。ldconfig 运行之后就会加载安装的库文件了。
⑨ linux安装zlib的问题
yum -y reinstall zlib 重新安装软件包, zlib是个软件包,cp是个命令, which 查看可执行文件的位置,并不是查看软件包的名字。
[root@instructor ~]# whereis zlib
zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz
⑩ 如何在linux平台上编译安装zlib软件
搜索并下载zlib源码包
1
在linux命令行上查询一下zlib的软件地址,然后使用浏览器打开即可,如下图所示
大家也可以在网络上进行搜索,不过一定要注意安全哦,避免下载到一些不干净的软件,所以这点需要注意一下
【参考资料后面附官网下载地址】
END
Gcc编译安装zlib源码包并配置使用
使用tar 命令进行解压出来,然后进入到安装目录,如下图所示
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
使用./configure --help可以查看编译的选项,我们这里使用简单的选项安装即可
进入安装文件目录,然后 使用如下命令进行安装
./configure --prefix=/data/progam/zlib
make
make install
如下图所示
再进行配置一下系统的文件,加载刚才编译安装的zlib生成的库文件
vi /etc/ld.so.conf.d/zlib.conf
加入如下内容后保存退出
/data/program/zlib/lib
==============================
也就是添加安装目录的文件路径,库文件。ldconfig 运行之后就会加载安装的库文件了。