| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1779 人关注过本帖
标题:Windows环境中使用MinGW编译zlib压缩库
只看楼主 加入收藏
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
结帖率:98.48%
收藏
已结贴  问题点数:20 回复次数:8 
Windows环境中使用MinGW编译zlib压缩库
https://hi.bccn.net/space.php?uid=383031&do=blog&id=34699
感兴趣的可以看看,如何使用codeblocks里面的编译器编译开源库。
这个是压缩包官方下载地:
http://www.
zlib127.zip (658.85 KB)
搜索更多相关主题的帖子: Windows 官方下载 编译器 
2012-07-19 13:50
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
这个是测试程序。。。来自网上。。
不过对于新版本的zlib有一个错误,偶修改了。
#include <cstring>
#include <cstdlib>
#include <iostream>

#include "zlib.h" //depence by zconf.h
//将zlib/win32/makefile.gcc拷到zlib目录中。
//执行MinGW环境变量批处理。
//执行mingw32-make -fMakefile.gcc 既可生成静态库,动态库对应的文件。可以参考命令行生成动态库的方法。
//可思考,如果不使用gzip?生成最小的zlib?
//1.2.7版本已经将vc6工程移出old目录,win32/目录下已经有makefile了。vc2008,2010直接支持编译。
//contrib\minizip中包含了操作zip文件的API包装示例。


using namespace std;
int main(int argc, char* argv[])
{
    int err = 0;
    Byte compr[200] = {0}, uncompr[200] = {0}; // big enough
    uLong comprLen = 0, uncomprLen = 0;

    const char* hello = "12345678901234567890123456789012345678901234567890";

    uLong len = strlen(hello) + 1;
    comprLen = sizeof(compr) / sizeof(compr[0]);

    err = compress(compr, &comprLen, (const Bytef*)hello, len);

    if (err != Z_OK)
    {
        cerr << "compess error: " << err << '\n';
        exit(1);
    }

    cout << "orignal size: " << len
         << " , compressed size : " << comprLen << '\n';
    cout << "compress string is:" << compr << endl;

    strcpy((char*)uncompr, "garbage");


    uncomprLen = 200; //here must be uncompress array size ,if 0 , will return -5 error!
    err = uncompress(uncompr, &uncomprLen, compr, comprLen);

    if (err != Z_OK)
    {
        cerr << "uncompess error: " << err << '\n';
        exit(1);
    }

    cout << "orignal size: " << len
         << " , uncompressed size : " << uncomprLen << '\n';

    if (strcmp((char*)uncompr, hello))
    {
        cerr << "BAD uncompress!!!\n";
        exit(1);
    }
    else
    {
        cout << "uncompress() succeed: \n" << (char*)uncompr;
    }
}

我们都在路上。。。。。
2012-07-19 13:51
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
膜拜大牛
2012-07-19 13:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
这个还是用gcc 不算特别难 我还搞过gcc程序移植VC呢。。 呵呵
2012-07-19 13:52
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
Z版的动作真是快呀。。。呵呵。
偶也搞过一些开源库移植到VC中,看来我们的兴趣相同呀。
偶发现基于gcc的代码可移植性比较高。

我们都在路上。。。。。
2012-07-19 13:55
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
向大牛学习 我一贯是速度快的

后来我发现 代码的效率和编译参数的关系太小了 垃圾代码怎么优化也不行 慢慢的也不愿意移植了 移植了 效率也不会变高多少
2012-07-19 13:58
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
呵呵,一般偶只移植那些比较有名的开源库,这些库通常都有汇编源程序以提高库的效率。
垃圾代码偶也发现了不少,很多都没有移植的价值。

我们都在路上。。。。。
2012-07-19 14:02
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:10 
我来下载一个。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-07-19 14:07
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 8楼 yuma
zlib_test.rar (116.97 KB)

测试的CB工程。

我们都在路上。。。。。
2012-07-19 14:09
快速回复:Windows环境中使用MinGW编译zlib压缩库
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035777 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved