一个新新手的遭遇,郁闷的圣蛋节!

zzzl 2003-12-25 03:01:55
我编绎了一个程序,它需要zlib.h,于是,我到zlib的网站上下载了一个,把源文件放在了程序include的下面,再编绎,过去了,但却说link失败,需要zlib.lib,只好又把zlib单独编绎了一遍(我不会用makefile,就用vc7新建了一个“文件项目”,然后,把zlib的所有代码文件让工程包含起来,这样就得到了zlib.lib),再编绎,这回得到了exe,运行,说需要zlib.dll,可这回,我怎么也编绎不出来dll,无论我怎么设置项目属性。
就这一个程序,它居然需要三四个库,我折腾了一天一夜也没搞定。

另外问一下,我已经include了所有的文件,为什么运行时还需要dll?它不能在编绎时就把引用的其它库链接进exe吗?
...全文
39 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hardstudylulin 2003-12-25
  • 打赏
  • 举报
回复
说得很全了,圣诞节快乐!
haidaya 2003-12-25
  • 打赏
  • 举报
回复
up
sursun 2003-12-25
  • 打赏
  • 举报
回复
mark
alvachien 2003-12-25
  • 打赏
  • 举报
回复
看来你对Win32不是很懂嘛。

Lib是静态库,一般用它把输出函数全部打包进exe;Dll是动态链接库,一般exe只是调用其中的接口来完成操作(当然COM麻烦一点).

既然你是lib包,可以直接把lib打包进exe,Zlib是压缩中最著名(我所知道的)的一个了,你可以找到它配套的头文件。直接在你的代码中include头文件就可以了。(具体的见我在你这篇帖子最上面的回答)。

自己做Dll当然也可以,不过好像可以不必这么复杂。(Delphi我没有用过,不知道里面怎么做这些东西),呵呵:)
zzzl 2003-12-25
  • 打赏
  • 举报
回复
最终的exe为什么不能包含dll里的代码呢?如果用delphi的话,会有一个选项,可以包含所有引用到的dll代码(有源程序的前提下),这样exe就可以脱离任何dll,单独执行了。
难道vc不可以吗?
checkyvc6 2003-12-25
  • 打赏
  • 举报
回复
只好又把zlib单独编绎了一遍(我不会用makefile,就用vc7新建了一个“文件项目”,然后,把zlib的所有代码文件让工程包含起来,这样就得到了zlib.lib),再编绎,这回得到了exe
、、、、、、、、、、、、、、、
既然编译可以得到lib的话,你找一下应该有相同名字的dll,可能路径不对,你找一下然后拷贝到exe所在的目录即可

如果还有问题给我发消息!!
powercy 2003-12-25
  • 打赏
  • 举报
回复
目标文件,编译的中间代码。
zzzl 2003-12-25
  • 打赏
  • 举报
回复
那obj是什么呢?
constantine 2003-12-25
  • 打赏
  • 举报
回复
必须DLL文件才可以了
thisisyjs 2003-12-25
  • 打赏
  • 举报
回复
你建立zlib.dll的工程时,选择dll工程,才可以生成Dll文件啊。
powercy 2003-12-25
  • 打赏
  • 举报
回复
有源码就可以自己用vc整出zlib.DLL来的。

lib,dll,源码的关系正如楼上说言。
alphapiao 2003-12-25
  • 打赏
  • 举报
回复
当你使用静态库,并且使用静态连编时,可以不用.dll.
arvid_gs 2003-12-25
  • 打赏
  • 举报
回复
zlib.lib只有函数的定义得编译信息,只是一些函数的在zlib.dll中的地址描述。
你必须有有zlib.dll这里面才是函数的真正编译代码
broadoceans 2003-12-25
  • 打赏
  • 举报
回复
原因是:
zlib使用的是动态链接库。
zlib.lib只有函数的信息,没有真正的代码。
所以你必须有zlib.dll,这里才有真正的代码。

alvachien 2003-12-25
  • 打赏
  • 举报
回复
不需要这么麻烦,直接把zlib.lib和你的工程相关联就可以了。

具体做法是在Project->Setting->Link中Object/library Modules中加入zlib.lib,注意一下zlib一定要放在工程路径(或者其中系统路径)中就可以了。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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