回 帖 发 新 帖 刷新版面

主题:OBJ与EXE有什么区别?

不同样是机器码吗?书上只提到一句,就是OBJ只给出了程序的相对地址,而EXE是绝对地址,哪位高手能详细解释一下?

回复列表 (共9个回复)

沙发

因为OBJ还有一些浮动地址需要处理。
机器必需知道它们的绝对地址。

板凳

仅仅是这样吗

3 楼

可以这么说。只有这些。

4 楼

.obj文件是编译的二进制目标文件,.exe是可执行文件

5 楼

OBJ是你去执行某一文件时的目标文件,而EXE只是执行这个代码的一个连接!

6 楼

能不能举个例子,怎样把obj改成exe?人工改

7 楼

晕哦,这个问踢我还没想过呢!不好意思哦!~~~~

8 楼

OBJ是目标文件,EXE是可执行文件,它们同样都是二进制文件(说白了计算机里的一切数据哪个不是二进制的?)。只是前者的文件地址是相对的,后者是绝对的。前者由于地址不是绝对分配的,所以不能作为应用软件,也就是说不能完成任何动作(做软件不就是要完成智能控制的动作吗),而后者可以。可以说exe是obj的继续,够清楚了吧!

9 楼

obj与exe不同的除了各位所说,还有两点:当程序较大时,需要链接器把数个obj链接在一起。即使是单一的obj,其中有些注释(在编译过程中产生)是不能被执行的,需要靠链接器转换成可执行代码。

我来回复

您尚未登录,请登录后再回复。点此登录或注册