Architecture 在一台计算机上生成的C程序的.exe文件是否会在另一台没有';我没有任何C编译器

Architecture 在一台计算机上生成的C程序的.exe文件是否会在另一台没有';我没有任何C编译器,architecture,compiler-construction,operating-system,Architecture,Compiler Construction,Operating System,例如,一个C程序已经在计算机上使用C编译器编写并成功编译。如果只将该程序的.exe文件复制到另一台没有安装任何C编译器的计算机上,那么它会在该计算机上执行吗?我知道编译源程序以生成机器代码(目标代码)。此机器代码由链接器链接到目标模块,以形成加载模块(.exe文件),加载程序将其加载到内存中执行。 这意味着.exe文件中存在机器代码,但同时机器代码也取决于指令集CPU config。如果指令集相同/如果指令集不同,.exe文件是否会在不同的计算机上执行?(假设两台计算机运行在同一个操作系统上)也

例如,一个C程序已经在计算机上使用C编译器编写并成功编译。如果只将该程序的.exe文件复制到另一台没有安装任何C编译器的计算机上,那么它会在该计算机上执行吗?我知道编译源程序以生成机器代码(目标代码)。此机器代码由链接器链接到目标模块,以形成加载模块(.exe文件),加载程序将其加载到内存中执行。
这意味着.exe文件中存在机器代码,但同时机器代码也取决于指令集CPU config。如果指令集相同/如果指令集不同,.exe文件是否会在不同的计算机上执行?(假设两台计算机运行在同一个操作系统上)

也可能是的副本,我想您可以稍微考虑一下就知道这一点。显然,Microsoft并没有在每台计算机上为所有Windows提供c编译器的源代码,也没有为MS Word或Excel提供c编译器的源代码。您只需要编译器就可以从源代码创建机器代码。之后通常不需要它(除非您依赖于应用程序中的编译,但这被认为是不好的做法)。如果可执行文件与指令集、操作系统和安装的库兼容,则可执行文件将运行。当然,这并不是说应用程序可能不会生成其他错误,因为它缺少资源(例如内存或故意依赖文件(例如,要显示的文件))。