绝大多数 C++ 编译器会将 C++ 源代码转换为目标文件(具有足够控制信息以链接到可执行文件的机器代码)。他们实际上 可能会 生成汇编语言作为中间步骤,甚至使用单独的汇编程序来处理汇编程序源代码,但您通常永远不会看到这一点。例如,您实际上必须通过使用 -S 标志来获取 gcc 以生成汇编代码(.s 文件)。通常,您永远不会看到程序集。 但是 C++ 标准并没有强制要求编译器输出的最终形式,只是要求代码在运行时必须以某种方式运行。 事实上,最早的 C++“编译器”实际上生成了 C 源代码,然后对其进行编译。 如果您感到受虐,您可以让您的 C++ 编译器生成目标代码、Java 字节代码甚至 GWBASIC。 原文由 paxdiablo 发布,翻译遵循 CC BY-SA 3.0 许可协议
绝大多数 C++ 编译器会将 C++ 源代码转换为目标文件(具有足够控制信息以链接到可执行文件的机器代码)。他们实际上 可能会 生成汇编语言作为中间步骤,甚至使用单独的汇编程序来处理汇编程序源代码,但您通常永远不会看到这一点。例如,您实际上必须通过使用
-S
标志来获取gcc
以生成汇编代码(.s 文件)。通常,您永远不会看到程序集。但是 C++ 标准并没有强制要求编译器输出的最终形式,只是要求代码在运行时必须以某种方式运行。
事实上,最早的 C++“编译器”实际上生成了 C 源代码,然后对其进行编译。
如果您感到受虐,您可以让您的 C++ 编译器生成目标代码、Java 字节代码甚至 GWBASIC。