新手zlib压缩库求助

qq_15510627 2015-03-21 01:06:40
最近需要要到解压数据,需要用到zlib库
百度下 zlib库的使用 下载了个1.2.8版本的压缩库 编译好

在MFC中使用,在设置 静态库中使用MFC编译出错,而设置使用 动态库中使用MFC则不会报错

以下是静态链接时候报错的代码

1> 正在生成代码...
1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>msvcrt.lib(MSVCR110.dll) : error LNK2005: _free 已经在 libcmtd.lib(dbgfree.obj) 中定义
1>msvcrt.lib(MSVCR110.dll) : error LNK2005: _malloc 已经在 libcmtd.lib(dbgmalloc.obj) 中定义
1>libcmtd.lib(crt0init.obj) : warning LNK4098: 默认库“msvcrt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>C:\Users\Administrator\Desktop\C源码\DNF资源解包\Debug\DNF资源解包.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

应该是 zlib库冲突了,请问如何解决,在不适用 动态链接库的情况下
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_15510627 2015-03-21
  • 打赏
  • 举报
回复
谢谢了,这样可以了
凌乱哥 2015-03-21
  • 打赏
  • 举报
回复
在工程属性中设置忽略指定库

在 Ignore Specific Library 中输入msvcrt.lib就好了
凌乱哥 2015-03-21
  • 打赏
  • 举报
回复
http://www.usidcbbs.com/simple/?t3869.html 仔细看里面有说到一个问题:

在一个使用zilb的工程中(该工程所有代码要求静态链接),发现最后进行exe链接生成时碰到了链接错误.

要么是error LNK2001,要么是 LNK2005.

经检查主要原因是因为运行时选择出了问题.现总结经验如下.供以后参考.

 

使用zlib库的静态lib(zlib.lib)与主程序进行(静态)连接时,必须在"代码生成"中选中"运行时库时"必须选择

"多线程调试(/MTd)"或"多线程(/MT)"

然后在连接选项中忽略msvcrt.lib.

否则出现链接错误:LNK2005 libcmt.lib和msvcrt.lib冲突

 

注意保持整个工程在"代码生成"页面的"运行时库时"(/MT,/MTd,/MD,/MDd)的一致性.

 

另外的方法是:使用/FORCE:MULTIPLE 链接选项.这样可以忽略掉这个链接错误(转换为warning).

个人觉得还是使用上面的方法比较保险一些.这个(/FORCE:MULTIPLE)方法作为备用方案.

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧