<bdo id='fjqDO'></bdo><ul id='fjqDO'></ul>
    1. <legend id='fjqDO'><style id='fjqDO'><dir id='fjqDO'><q id='fjqDO'></q></dir></style></legend>
      <i id='fjqDO'><tr id='fjqDO'><dt id='fjqDO'><q id='fjqDO'><span id='fjqDO'><b id='fjqDO'><form id='fjqDO'><ins id='fjqDO'></ins><ul id='fjqDO'></ul><sub id='fjqDO'></sub></form><legend id='fjqDO'></legend><bdo id='fjqDO'><pre id='fjqDO'><center id='fjqDO'></center></pre></bdo></b><th id='fjqDO'></th></span></q></dt></tr></i><div id='fjqDO'><tfoot id='fjqDO'></tfoot><dl id='fjqDO'><fieldset id='fjqDO'></fieldset></dl></div>
    2. <small id='fjqDO'></small><noframes id='fjqDO'>

      <tfoot id='fjqDO'></tfoot>

      目标文件包含什么?

      时间:2023-10-17
      <legend id='3sXnJ'><style id='3sXnJ'><dir id='3sXnJ'><q id='3sXnJ'></q></dir></style></legend>

      <small id='3sXnJ'></small><noframes id='3sXnJ'>

      <i id='3sXnJ'><tr id='3sXnJ'><dt id='3sXnJ'><q id='3sXnJ'><span id='3sXnJ'><b id='3sXnJ'><form id='3sXnJ'><ins id='3sXnJ'></ins><ul id='3sXnJ'></ul><sub id='3sXnJ'></sub></form><legend id='3sXnJ'></legend><bdo id='3sXnJ'><pre id='3sXnJ'><center id='3sXnJ'></center></pre></bdo></b><th id='3sXnJ'></th></span></q></dt></tr></i><div id='3sXnJ'><tfoot id='3sXnJ'></tfoot><dl id='3sXnJ'><fieldset id='3sXnJ'></fieldset></dl></div>

          <tbody id='3sXnJ'></tbody>

            • <bdo id='3sXnJ'></bdo><ul id='3sXnJ'></ul>
            • <tfoot id='3sXnJ'></tfoot>
                本文介绍了目标文件包含什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                在 C 或 C++ 编译的各个阶段,我知道生成了一个目标文件(即 any_name.o 文件).这个 .o 文件包含什么?我无法打开它,因为它是一个二进制文件.

                During the various stages of compilation in C or C++, I know that an object file gets generated (i.e., any_name.o file). What does this .o file contain? I can't open it since it's a binary file.

                有人可以帮我吗?目标文件的内容是否主要取决于我们在 Unix 上使用的编译器?

                Could anybody please help me? Are the contents of the object file mainly dependent on the compiler which we use on Unix?

                推荐答案

                对象文件可以包含一堆东西:基本上是下面的部分或全部列表:

                Object files can contain a bunch of stuff: Basically it's some or all of the list below:

                • 符号名称
                • 编译代码
                • 常量数据,例如.字符串
                • 导入 - 编译后的代码引用了哪些符号(由链接器修复)
                • 导出 - 目标文件可用于其他目标文件的符号.

                链接器通过匹配所有导入和导出,并修改编译后的代码以便调用正确的函数,将一堆目标文件转换为可执行文件.

                The linker turns a bunch of object files into an executable, by matching up all the imports and exports, and modifying the compiled code so the correct functions get called.

                这篇关于目标文件包含什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:为什么需要为每个操作系统重新编译 C/C++? 下一篇:为什么内联被认为比函数调用更快?

                相关文章

              • <legend id='yrcUe'><style id='yrcUe'><dir id='yrcUe'><q id='yrcUe'></q></dir></style></legend>
              • <tfoot id='yrcUe'></tfoot>

                1. <small id='yrcUe'></small><noframes id='yrcUe'>

                2. <i id='yrcUe'><tr id='yrcUe'><dt id='yrcUe'><q id='yrcUe'><span id='yrcUe'><b id='yrcUe'><form id='yrcUe'><ins id='yrcUe'></ins><ul id='yrcUe'></ul><sub id='yrcUe'></sub></form><legend id='yrcUe'></legend><bdo id='yrcUe'><pre id='yrcUe'><center id='yrcUe'></center></pre></bdo></b><th id='yrcUe'></th></span></q></dt></tr></i><div id='yrcUe'><tfoot id='yrcUe'></tfoot><dl id='yrcUe'><fieldset id='yrcUe'></fieldset></dl></div>
                    <bdo id='yrcUe'></bdo><ul id='yrcUe'></ul>