Onl*_*ons 4 c c++ compiler-construction linker loader
我读过这个
编译器将以人类可读编程语言编写的代码转换为处理器可理解的机器代码表示.
编译器如何知道我的CPU指令集?
任何理解汇编程序,链接器和加载器的工作的参考都会有所帮助.
实质上,每个硬件/软件组合都需要自己的编译器.因此,即使您可能编写C代码以便在Windows机器上编译和运行,但与Apple机器的C编译器相比,您仍然需要一个与其他实现不同的编译器.
简而言之,有些编译器可以生成与运行硬件代码不同的硬件代码.一个简单的例子是Arduino产品.Arduino IDE在Windows(和其他)机器上运行,但代码是为Arduino板上的Atmel微处理器编译的.此外,每种电路板样式(UNO等)都有不同风格的Atmel微处理器,这就是为什么在IDE中你必须确定草图的目标,以便编译器可以进行必要的调整以运行特定的硬件(指令集).
这个想法也适用于汇编程序和链接器(可能稍微少一些).