主题:OBJ与EXE有什么区别?
			 euclid
				 [专家分:1670]  发布于 2005-06-13 20:18:00
 euclid
				 [专家分:1670]  发布于 2005-06-13 20:18:00							
			不同样是机器码吗?书上只提到一句,就是OBJ只给出了程序的相对地址,而EXE是绝对地址,哪位高手能详细解释一下?
						
					 
		
			
回复列表 (共9个回复)
		
								
				沙发
				
					 digital1010 [专家分:1430]  发布于 2005-06-13 20:23:00
digital1010 [专家分:1430]  发布于 2005-06-13 20:23:00				
				因为OBJ还有一些浮动地址需要处理。
机器必需知道它们的绝对地址。
							 
						
				板凳
				
					 euclid [专家分:1670]  发布于 2005-06-13 20:34:00
euclid [专家分:1670]  发布于 2005-06-13 20:34:00				
				仅仅是这样吗
							 
						
				3 楼
				
					 digital1010 [专家分:1430]  发布于 2005-06-14 19:28:00
digital1010 [专家分:1430]  发布于 2005-06-14 19:28:00				
				可以这么说。只有这些。
							 
						
				4 楼
				
					 qianlima210210 [专家分:1110]  发布于 2005-06-19 11:08:00
qianlima210210 [专家分:1110]  发布于 2005-06-19 11:08:00				
				.obj文件是编译的二进制目标文件,.exe是可执行文件
							 
						
				5 楼
				
					 心思飞 [专家分:710]  发布于 2005-06-26 10:34:00
心思飞 [专家分:710]  发布于 2005-06-26 10:34:00				
				OBJ是你去执行某一文件时的目标文件,而EXE只是执行这个代码的一个连接!
							 
						
				6 楼
				
					 euclid [专家分:1670]  发布于 2005-06-26 19:50:00
euclid [专家分:1670]  发布于 2005-06-26 19:50:00				
				能不能举个例子,怎样把obj改成exe?人工改
							 
						
				7 楼
				
					 心思飞 [专家分:710]  发布于 2005-06-28 23:11:00
心思飞 [专家分:710]  发布于 2005-06-28 23:11:00				
				晕哦,这个问踢我还没想过呢!不好意思哦!~~~~
							 
						
				8 楼
				
					 wangwsz [专家分:0]  发布于 2005-07-06 14:11:00
wangwsz [专家分:0]  发布于 2005-07-06 14:11:00				
				OBJ是目标文件,EXE是可执行文件,它们同样都是二进制文件(说白了计算机里的一切数据哪个不是二进制的?)。只是前者的文件地址是相对的,后者是绝对的。前者由于地址不是绝对分配的,所以不能作为应用软件,也就是说不能完成任何动作(做软件不就是要完成智能控制的动作吗),而后者可以。可以说exe是obj的继续,够清楚了吧!
							 
						
				9 楼
				
					 cracker007 [专家分:22140]  发布于 2005-07-12 09:59:00
cracker007 [专家分:22140]  发布于 2005-07-12 09:59:00				
				obj与exe不同的除了各位所说,还有两点:当程序较大时,需要链接器把数个obj链接在一起。即使是单一的obj,其中有些注释(在编译过程中产生)是不能被执行的,需要靠链接器转换成可执行代码。
							 
									
			
我来回复