为什么只有C和C++代码直接转换为EXE,而Python和java需要外部转换器在编译后这样做?

2024-03-28 23:55:15 发布

您现在位置:Python中文网/ 问答频道 /正文

<>编译时发生了什么,只有C和C++被转换成EXE?所有应用程序都必须是exe才能在windows上运行,那么为什么这些语言不包含编译后生成exe文件的功能呢


Tags: 文件功能语言应用程序windowsexe
2条回答

C、C++和java是compiled languages,意思是它们的代码是通过compiler运行的,它占用代码并将其转换成二进制指令。在C和C++中,这些指令的格式是计算机可以直接理解的,在Windows中存储在.exe文件中。p>

Java稍微复杂一些,因为代码是为JVM编译并在其中运行的,而不是直接在计算机中运行。这就是为什么没有.exe。不过,您可以使用软件将程序打包为从.exe运行

另一方面,Python是一个Interpreted Language,您的代码通过一个名为Interpreter的程序运行。解释器逐行运行您的代码,这意味着在任何时候您的整个程序都不会转换为指令,您所需要的只是一个包含Python代码的文件。与Java一样,您可以制作一个包含代码的包,并在.exe中对其进行解释

正如朱利安·蒂埃里(Julien Thierry)已经提到的,还有许多其他编译和解释语言的例子(以及我可能不知道的其他类型)

不仅C和C++对本地可执行文件进行编译。

您可以在此处阅读更多信息:https://en.wikipedia.org/wiki/Compiled_language 还有一个编译过的其他语言列表(那些没有“到字节码”的语言应该是那些不需要“外部转换器”(称为解释器)的语言

<> P>没有一个“魔术”的东西,它使C++和C能够做到这一点,而不是其他语言。它是一个设计的选择。编译的C或C++语言只能在一个目标(特定的CPU架构和操作系统)上运行,而用Python或java编写的程序可以在任何具有解释器的平台上运行。

相关问题 更多 >