Man*_*ani 6 c operating-system
在Windows中,当我编译一个简单的'C'程序时,我得到了最终的可执行机器代码.exe.在unix中使用gcc的同样的事情产生一个.out机器代码文件.
.exe
.out
这些有什么区别?
我的基本问题是,.exe和.out为机器代码,为什么他们依赖于操作系统?
就像在Unix中我无法.exe直接执行而在Windows中,我无法执行.outUnix.为什么会这样?
Ala*_*nse 12
这一切都与程序的加载方式有关.
Windows和Linux对于程序自定义的方式有不同的格式.
在Linux中,通常使用ELF格式.对于Windows,它是PE.
这些格式定义了执行机器指令所需的有关程序的不同数据.
此外,操作系统接口不同,因此需要使用不同的库并且需要进行不同的系统调用.
对于一个简单的程序,您通常可以在其他操作系统上重新编译以使其同时工作,但您将无法在两者上使用单个文件.
归档时间:
15 年,2 月 前
查看次数:
1541 次
最近记录:
14 年,8 月 前