编译zlib遇到的问题 没有找到match686.obj
来源:互联网 发布:linux监控进程脚本 编辑:程序博客网 时间:2024/05/29 02:42
今年4月zlib发布了1.2.5版,修正了几个bug,增加了新功能(目前我还用不上).
最近准备在自己的程序中用这个版本。结果怎么也编译通不过。折腾了我一整天才搞定,发现是两个小的设置没有弄好。哎。。。
新的1.2.5版本只提供了vc9、vc10两个project配置文件.我用项目版本转换文件怎么也不能转到vc7.1下。没办法只好装了一个vc2008重新编译。
把zlib 1.2.5加入自己的项目,编译时有两点要注意
1.就是zlib 1.2.5源代码包中\contrib\vstudio\readme.txt中说的在使用zlib要预定义宏ZLIB_WINAPI,否则无法编译通过。
- To use zlibwapi.dll in your application, you must define the macro ZLIB_WINAPI when compiling your application's source files.
2.链接时,除了#pragma comment(lib, "zlibvc.lib")添加引入库外,还要注意Character Set的设置要统一。否则也会出现链接错误,提示找不到_compress外部变量。
后记(2011-6-19)
我的编程环境已升级VS2008,又想在项目中使用ASM版本的ZLIB,重新从zlib.net下载后,直接使用zlib-1.2.5\contrib\vstudio\vc9下的zlibvc项目文件编译出错。发现是zlib-1.2.5\contrib\masmx86下的OBJ文件没有生成。进入VS2008命令行环境,运行bld_ml32.bat生成两个obj文件。重新在集成环境下编译就没问题了。但是如果是使用ZLIB的静态库版本,一定注意要将这两个obj文件包含到最终的zlibvc.lib中去。否则在自己的应用项目中编译时会提示如下错误。1>zlibr.lib(inflate.obj) : error LNK2001: unresolved external symbol _inflate_fast
1>zlibr.lib(deflate.obj) : error LNK2001: unresolved external symbol _longest_match
1>zlibr.lib(deflate.obj) : error LNK2001: unresolved external symbol _match_init
把两个obj文件包含到zlibvc.lib的方法是,Project->Property->Librarian->Additional Dependencies 加入inffas32.obj match686.obj,同时Additional Library Directories设置正确。
另外,如果使用命令行编译进入zlib-1.2.5\win32目录运行下面的命令就可以了。
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj" (use ASM code, x86)
最近准备在自己的程序中用这个版本。结果怎么也编译通不过。折腾了我一整天才搞定,发现是两个小的设置没有弄好。哎。。。
新的1.2.5版本只提供了vc9、vc10两个project配置文件.我用项目版本转换文件怎么也不能转到vc7.1下。没办法只好装了一个vc2008重新编译。
把zlib 1.2.5加入自己的项目,编译时有两点要注意
1.就是zlib 1.2.5源代码包中\contrib\vstudio\readme.txt中说的在使用zlib要预定义宏ZLIB_WINAPI,否则无法编译通过。
- To use zlibwapi.dll in your application, you must define the macro ZLIB_WINAPI when compiling your application's source files.
2.链接时,除了#pragma comment(lib, "zlibvc.lib")添加引入库外,还要注意Character Set的设置要统一。否则也会出现链接错误,提示找不到_compress外部变量。
后记(2011-6-19)
我的编程环境已升级VS2008,又想在项目中使用ASM版本的ZLIB,重新从zlib.net下载后,直接使用zlib-1.2.5\contrib\vstudio\vc9下的zlibvc项目文件编译出错。发现是zlib-1.2.5\contrib\masmx86下的OBJ文件没有生成。进入VS2008命令行环境,运行bld_ml32.bat生成两个obj文件。重新在集成环境下编译就没问题了。但是如果是使用ZLIB的静态库版本,一定注意要将这两个obj文件包含到最终的zlibvc.lib中去。否则在自己的应用项目中编译时会提示如下错误。1>zlibr.lib(inflate.obj) : error LNK2001: unresolved external symbol _inflate_fast
1>zlibr.lib(deflate.obj) : error LNK2001: unresolved external symbol _longest_match
1>zlibr.lib(deflate.obj) : error LNK2001: unresolved external symbol _match_init
把两个obj文件包含到zlibvc.lib的方法是,Project->Property->Librarian->Additional Dependencies 加入inffas32.obj match686.obj,同时Additional Library Directories设置正确。
另外,如果使用命令行编译进入zlib-1.2.5\win32目录运行下面的命令就可以了。
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj" (use ASM code, x86)
nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj inffas8664.c" (use ASM code, x64)
自己遇到的问题:
没有找到match686.obj这个问题。
解决方法:
进入VS2008命令行环境,运行bld_ml32.bat生成两个obj文件。
在vs2008的IDE中,进入命令行,运行bld_ml32.bat,就会生成相应的match686.obj文件,重新编译zlib工程就可以编译成功了。
0 0
- 编译zlib遇到的问题 没有找到match686.obj
- 编译问题 无法找到zlib.h
- 在使用zlib时遇到的问题
- Android studio 启动的时候遇到tool.jar 没有找到的问题z
- 编译 zlib 问题
- 编译 zlib 问题
- OpenCV-2.3.1 SVM的例程运行遇到没有找到tbb_debug.dll问题
- ubuntu12.04 64bit 编译android源码时遇到的问题"make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates"
- 没有找到msvcr80.dll问题的解决
- intsafe.h没有找到的问题
- 编译遇到的问题
- 使用VS2008遇到“没有找到MSVCR90D.dll”提示的解决方法
- 64位zlib编译问题
- 遇到的问题然后自己找到答案
- Qtopia Core 4.3(QT/E)交叉编译安装全过程--出现无法找到头文件zlib.h问题
- [VC++]编译,没有找到 mspdb80.dll 的解决办法
- BCB编译的exe没有找到vcl60.bpl
- 问题之htslib安装时没有zlib
- leetcode 112 —— Path Sum
- SIP协议详解&eXosip源码库用法分析
- 依赖权重的随机选择
- Lucas定理 大组合数取模
- android 调用系统相机拍照返回Intent 为空的处理
- 编译zlib遇到的问题 没有找到match686.obj
- linux ssh授权 无密码登录
- cron表达式
- centos7 设置IP/开机启动
- Num 26 : HDOJ2187 : 悼念512汶川大地震遇难同胞——老人是真饿了 [ 贪心 ]
- Linux | 管道
- POJ 2991 Crane (线段树)
- NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)
- Leetcode61 Rotate List