因为.exe属于可执行文件,.obj文件只是源代码生成可执行文件的过程中生成的过程文件。
在计算机DOS下,生成一个可执行文件,需要用编译器将源程序编译为obj文件,再用链接器将obj文件链接成exe文件。只有可执行文件才能直接运行。可执行文件还包括.sys文件 .com等类型文件。
拓展资料:
.obj文件与.exe文件的区别与联系:
1、obj里存的是编译后的代码跟数据,并且有名称,所以在连接时会出现未解决的外部符号。当
连成exe后便不存在名称的概念了,只有地址。
lib就是一堆obj的组合。 编译器会链接一些常用的库,其它的需要你自己指定。
2、目标文件,一般是程序编译后的二进制文件,通过链接器和资源文件链接就成可执行文件了。OBJ只给出了程序的相对地址,而可执行文件是绝对地址。CPP对应的二进制代码格式obj,是未经重定位的。
3、obj 文件和exe 文件都是二进制数据文件,其中obj 文件是COFF 格式,exe 文件时PE 格式。
参考资料来源:百度百科-可执行文件
参考资料来源:百度百科-编译
参考资料来源:百度百科-obj文件