Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果是C/C++;如果是母语,那么如何在Mac上使用?_C++_C_Native Code - Fatal编程技术网

C++ 如果是C/C++;如果是母语,那么如何在Mac上使用?

C++ 如果是C/C++;如果是母语,那么如何在Mac上使用?,c++,c,native-code,C++,C,Native Code,我认为本机代码是设计用于在特定机器上运行的代码。所以让我困惑的是C/C++如何在其他平台和机器上运行?我唯一能想到的是,他们需要一个完全不同的编译器,将代码编译成特定于机器的代码。。当C/C++被称为本地语言时,我感到困惑 我唯一能想到的是,他们需要一个完全不同的编译器,将代码编译成特定于机器的代码 你已经回答了你自己的问题!编译器是生成目标平台理解并执行的机器代码的部件 当人们说“本机语言”时,他们通常指的是该语言被翻译(编译)成机器代码,而不是某种中间形式(如Java的字节码)或由解释器(如

我认为本机代码是设计用于在特定机器上运行的代码。所以让我困惑的是C/C++如何在其他平台和机器上运行?我唯一能想到的是,他们需要一个完全不同的编译器,将代码编译成特定于机器的代码。。当C/C++被称为本地语言时,我感到困惑

我唯一能想到的是,他们需要一个完全不同的编译器,将代码编译成特定于机器的代码

你已经回答了你自己的问题!编译器是生成目标平台理解并执行的机器代码的部件


当人们说“本机语言”时,他们通常指的是该语言被翻译(编译)成机器代码,而不是某种中间形式(如Java的字节码)或由解释器(如Perl)执行

“我唯一能想到的是,他们需要一个完全不同的编译器,将代码编译成特定于机器的代码”-宾果!没错,你需要一个针对处理器指令集的编译器,在较小程度上,针对操作系统进程模型。(记住,“Mac“包含几个不同且不兼容的处理器型号。)如果您有一个将C更改为x86机器代码的编译器,您可以通过大量的工作来更改该编译器以生成其他机器的机器代码。这称为重定向编译器。GCC编译器已经把它推向了极端,因为它有不同语言的多个前端(C、C++、java、fortran……)和不同机器的多个后端(x86、ARM、SPARC、MIPS……)因此,对于java,几乎所有平台都可以使用相同的编译器,因为字节码将在JVM中运行,如果JVM是为该平台制作的,那么瞧。对吗?Java没有本机编译器,只有将Java翻译成字节码的位。JVM是用本地语言编写的,并且是为目标平台编译的。因此,您可以在任何平台上运行任何Java程序,只要该平台存在JVM。Java代码本身是独立于平台的,因为它是由JVM执行的,而JVM是特定于平台的东西所在的位置。即使使用Java,每个不同的平台仍然需要不同的JVM。您无法逃避这样一个事实:在某个点上,每个体系结构的底层执行代码都是不同的。