找回密码
 注册会员
查看: 878|回复: 0

关于整个编译过程和库文件的问题

[复制链接]
发表于 2010-8-10 13:48:28 | 显示全部楼层 |阅读模式
<p>关于整个编译过程和库文件的问题</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:20 -</p>
<p>解决时间:2010-8-10 13:44</p>
<p>论述1</p>
<p>在C中</p>
<p>编译器单独编译(Compile)每个源文件(.c)生成相应的目标文件(.obj)</p>
<p>链接器链接(Link)各个目标文件(.obj)和资源文件(.res)生成可执行文件(.exe)</p>
<p>其中,obj是Complie的产物,同时也是Link的对象,而exe是Link的产物</p>
<p>问题1(可多选)</p>
<p>静态库文件(lib)是</p>
<p>A、Compile的产物</p>
<p>B、Link的对象</p>
<p>C、Link的产物</p>
<p>D、其他(请详细说明)</p>
<p>论述2</p>
<p>link成功会生成可执行文件(exe),此时运行程序(Execute Program)就相当于运行exe文件</p>
<p>问题2(可多选)</p>
<p>动态库文件(dll)是</p>
<p>A、Link的产物</p>
<p>B、Execute时链接的对象</p>
<p>C、其他(请详细说明)</p>
<p>问题3</p>
<p>一个程序从编译、链接、生成可执行文件到运行它,是不是系统自动并且一定会生成lib和dll?</p>
<p>如果不是,如何手动去生成lib和dll?</p>
<p>提问者: 以脸为证 - 四级</p>
<p>最佳答案</p>
<p>问题1:</p>
<p>BD</p>
<p>D:通过目标文件归档程序(VC++中是lib.exe)和其它方式(例如由dll文件生成lib文件)得到的产物 。</p>
<p>问题2:</p>
<p>AB</p>
<p>问题3:</p>
<p>不一定。首先,一个完整的程序的全编译过程可以仅依赖于现有的库文件,且不在这个程序的编译过程生成库文件。其次,库文件的格式不一定是lib和dll文件。至于手动生成lib和dll,这个和使用的工具相关。例如VC++的命令行可以用编译程序cl.exe编译源文件为目标文件,用归档程序lib.exe连接obj和lib文件生成静态库,用链接程序link.exe链接目标文件和资源文件生成exe和dll。</p>
<p>====</p>
<p>[原创回答团]</p>
<p>参考资料:原创 + Google确认</p>
<p>0</p>
<p>回答者:</p>
<p><img src="http://hiphotos.baidu.com/beckybibu/pic/item/4234f3dfc52db26395ee3724.jpg"></p>
<p>幻の上帝 - 十四级   2010-8-9 19:50</p>
<p>我来评论>></p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-5-13 02:07

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表