可能是重复问题:
为什么特定CPU的可执行程序在Linux和Windows上无法运行?
为什么在Linux中编写的程序不能在Windows上执行?假设我编译了一个包含对Windows和Linux都通用的函数调用的简单C程序,编译器会在Windows和Linux下生成不同的二进制文件吗?
可能是重复问题:
为什么特定CPU的可执行程序在Linux和Windows上无法运行?
为什么在Linux中编写的程序不能在Windows上执行?假设我编译了一个包含对Windows和Linux都通用的函数调用的简单C程序,编译器会在Windows和Linux下生成不同的二进制文件吗?
main()
开始之前运行的东西)可能会非常依赖于机器和操作系统,而且在 Windows 和 Linux 之间可能会有很大的区别。 - Carl Smotricz在Windows和Linux中,没有任何单个函数调用可以影响进程地址空间之外的任何内容,即使您可以让两个系统都执行该程序。除非也许:
void f()
{
*((char*)0) = 0;
}