gpt4 book ai didi

c++ - 当我们编译 C++ 时,我们得到了什么?二进制代码 ?汇编代码?

转载 作者:行者123 更新时间:2023-11-30 03:55:18 29 4
gpt4 key购买 nike

在 Java 中,当我们编译一个文件时,我们得到字节码,然后用虚拟机执行。

在 C++ 中怎么样?当我们用 g++ 编译一个文件时会发生什么,我们会得到什么汇编代码或二进制代码?

最佳答案

C 和 C++ 被编译成目标文件。这些文件包含可以直接在目标处理器上执行的机器代码。然而,在完全可执行之前,我们需要将所有目标文件链接在一起。除了填充所有缺失符号的地址外,这不会更改代码。代码的格式保持不变。

在 Linux 上,目标文件位于 ELF 中格式。

但是,可以使用链接时间优化来编译文件。除了机器码之外,这通常还会产生字节码。当使用链接时间优化进行链接时,链接器会在执行交叉编译单元(目标文件)优化的同时将字节码转换为机器码。

关于c++ - 当我们编译 C++ 时,我们得到了什么?二进制代码 ?汇编代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142089/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com