C中的翻译环境和执行环境是什么,它们之间有什么区别?
答案 0 :(得分:6)
翻译环境是指预处理器,编译器和链接器运行以从一个或多个源文件创建可执行文件的位置。例如,当您运行gcc或Visual Studio时,您就是在翻译环境中运行的。
执行环境是指实际运行已编译和链接的代码的计算机。
通常,这些环境是相同的。在您编译代码并在同一台计算机上或在同一处理器(或处理器系列)上运行同一操作系统的两台不同计算机上运行代码时,就是这种情况。
但是,在诸如没有操作系统的小型系统或运行OS的小型系统但处理能力最小的环境中,在这些系统上运行编译器是不可能的,或者非常缓慢。在这些情况下,您将在不同的系统上运行编译器,但告诉编译器创建在嵌入式系统上运行的可执行代码。在这种情况下,编译代码的计算机无法运行代码,但是嵌入式系统可以。
这是翻译环境和执行环境不同的情况。这通常称为交叉编译。
有关更多详细信息,请参见C standard的5.1节。