http://www.zlib.net
上下载源码来安装zlib软件包。
目前最新版本zlib是zlib1.2.3,安装开始;
$wget http://www.zlib.net/zlib-1.2.3.tar.gz
$tar -xvzf zlib-1.2.3.tar.gz
$cd zlib-1.2.3.tar.gz
$./configure
$make
$sudo make install
我下了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>
...
yum -y reinstall zlib 重新安装软件包, zlib是个软件包,cp是个命令, which 查看可执行文件的位置,并不是查看软件包的名字。[root@instructor ~]# whereis zlib
zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)