c - C中的翻译环境和执行环境是什么,它们有什么区别?

标签 c compilation

什么是C语言的翻译环境和执行环境,它们有什么区别?

最佳答案

翻译环境 是指预处理器、编译器和链接器运行以从一个或多个源文件创建可执行文件的位置。当您运行(例如)gcc 或 Visual Studio 时,您是在翻译环境中执行此操作。

执行环境是指编译链接代码实际运行的机器。

通常,这些环境是相同的。当您在同一台机器上编译代码并运行代码时,或者在同一处理器(或处理器系列)上运行相同操作系统的两台不同机器上时,就是这种情况。

然而,在没有操作系统的嵌入式系统或运行操作系统但处理能力极小的小型系统等环境中,在这些系统上运行编译器要么不可能,要么非常慢。在那些情况下,您将在不同的系统上运行编译器,但告诉它创建在嵌入式系统上运行的可执行代码。那样的话,编译代码的计算机不能运行代码,但是嵌入式系统可以。

这是翻译环境和执行环境不同的情况。这通常称为交叉编译

有关更多详细信息,请参阅 C standard 的第 5.1 节.

关于c - C中的翻译环境和执行环境是什么,它们有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52607367/

相关文章:

c++ - 尾随数组习语

c++ - 将库函数模板化以避免编译器指令是否有益?

c++ - 返回 (a) 与返回 a

c - 如何在c中声明一个结构?

c - OpenCL 根据缓冲区大小返回 INVALID_KERNEL_ARGS

java - 编译期间是否合并了包(共享名称)?

php - 为什么动态构造对于 php 编译器 (PHP) 来说很困难?

vb.net 编译错误 'abc' 在命名空间 'xyz' 中不明确

c -/usr/bin/ld : cannot find -lhogweed

C:循环遍历 fgets 逐位倾斜以获得奇怪的行为