可执行文件实际包含什么?..它是否包含Opcode和操作数形式的处理器指令?如果是这样,为什么我们为不同的操作系统提供不同的可执
像exe这样的可执行问题在Linux上没有用(没有wine).编译源代码时,编译器会生成特定于特定cpu体系结构的对象代码.但是同一个应用程序不适用于具有相同CPU的另一个OS.我知道代码可能包含特定于OS的指令,这些指令将阻止可执行运行.但是一个简单的程序2 + 2怎么样?令人困惑的部分是机器代码阻止工作的地狱.特定于cpu的机器代码对吗?如果我们剥离可执行文件格式,我们可以看到两个操作系统的相同机器代码(如2 + 2)吗?
还有一个问题:汇编语言怎么样?DO windows和Linux对同一个cpu使用不同的汇编语言吗?
为什么用linux编写的程序不能在windows中执行?假设我编译了一个简单的C程序,其中包含对windows和linux都通用的函数调用,编译器是否在windows和linux下生成不同的二进制文件?