windows上编译zlib-1.2.8
2016-06-07 14:15
330 查看
MSVC编译
使用VS(x86)命令行工具进入到zlib根目录,执行 nmake -f win32/Makefile.msc ,在根目录下生成:zlib.lib(静态库) zdll.lib(动态库的导入库) zlib1.dll(动态库) 。必要的头文件有zlib.h和zconf.h
MingW编译
进入到MinGW编译器目录中,运行mingwvars.bat批处理设置编译环境。
进入到zlib目录,然后用make命令执行,既可编译出动态库zlib1.dll,libz.dll.a导入库,以及静态库libz.a。
mingw32-make -f win32/makefile.gcc
使用zliblib,在链接时出现错误,时而是LNK2001,提示和msvcrt冲突,时而是LNK2005提示未决的符号错误。摸索了一上午终于搞定了如何使用zlib静态库和动态库。
一 使用静态库
在vc6下,需要把zlib.h、zconf.h和从zlib工程中生成的zlib.lib文件放到你的代码目录下,并且设置项目属性:project->settings->link->category选择input,在library
modules中的最后面输入一个空格和zlib.lib,在lgnore libraries输入MSVCRT(否则这个默认库和zlib库会有冲突),然后project-> settings-> c/c++->Category中选择Code generation,在Use run-time Library中选择Debug Multithreaded DLL
如果library
modules中输入zlib.lib了,那么在代码中添加
#include "zlib.h"即可,否则还要加入下面这句
#pragma
comment( lib, "zlib.lib")
二 使用动态库
同样,把zlib.h、zconf.h和从zlib工程中生成的zlib1.lib和zlib1.dll复制到自己的源程序文件夹中,代码中添加
#include "zlib.h"
#pragma comment( lib, "zlib1.lib")
推荐第二种方法。
使用VS(x86)命令行工具进入到zlib根目录,执行 nmake -f win32/Makefile.msc ,在根目录下生成:zlib.lib(静态库) zdll.lib(动态库的导入库) zlib1.dll(动态库) 。必要的头文件有zlib.h和zconf.h
MingW编译
进入到MinGW编译器目录中,运行mingwvars.bat批处理设置编译环境。
进入到zlib目录,然后用make命令执行,既可编译出动态库zlib1.dll,libz.dll.a导入库,以及静态库libz.a。
mingw32-make -f win32/makefile.gcc
使用zliblib,在链接时出现错误,时而是LNK2001,提示和msvcrt冲突,时而是LNK2005提示未决的符号错误。摸索了一上午终于搞定了如何使用zlib静态库和动态库。
一 使用静态库
在vc6下,需要把zlib.h、zconf.h和从zlib工程中生成的zlib.lib文件放到你的代码目录下,并且设置项目属性:project->settings->link->category选择input,在library
modules中的最后面输入一个空格和zlib.lib,在lgnore libraries输入MSVCRT(否则这个默认库和zlib库会有冲突),然后project-> settings-> c/c++->Category中选择Code generation,在Use run-time Library中选择Debug Multithreaded DLL
如果library
modules中输入zlib.lib了,那么在代码中添加
#include "zlib.h"即可,否则还要加入下面这句
#pragma
comment( lib, "zlib.lib")
二 使用动态库
同样,把zlib.h、zconf.h和从zlib工程中生成的zlib1.lib和zlib1.dll复制到自己的源程序文件夹中,代码中添加
#include "zlib.h"
#pragma comment( lib, "zlib1.lib")
推荐第二种方法。
相关文章推荐
- hadoop 免密码登录
- 最强身份证验证
- 有了malloc/free为什么还要new/delete?
- netty websocket chatroom
- 基于jQuery下拉选择框插件支持单选多选
- Ugly Number
- 基带-宽带-频带
- linux查找文件路径命令
- Java提高班 之操作Properties
- Butterknife使用详解
- Linux中的用户和用户组
- 使用JAXB类库实现JAVA对象与XML互转
- Android Studio中单元测试某个类中的一个方法
- C/C++中int、long、long long取值范围
- hdu 2063 过山车
- instanceof, isinstance,isAssignableFrom的区别
- 几起Oracle数据库文件损坏的case
- ios 视频捕捉
- 人生若只如初见
- django静态文件配置