问题标签 [object-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
636 浏览

gcc - elf 格式的 .o 文件中的 symtab 条目

我正在学习链接..
我用c编写了以下代码并使用gcc制作了.o

然后我把它变成了.o:
gcc begin.c -o begin.o

现在,当我使用 readelf 检查 symtab 时,没有 z 的记录……为什么?
gcc如何允许两个'y'?
在 .data 部分中,两个“x”是如何区分的?

0 投票
2 回答
201 浏览

optimization - 为什么静态库只是一袋目标文件,没有任何通常的相互依赖的优化或重新排序?

链接共享库(或至少是 Windows DLL)时,可以进行很多优化,并且所有函数和类都被放在一起并重新组织以获得最佳性能(或者我认为/希望如此)。

为什么静态库只是一袋对象?链接器(在时间和性能方面)拥有包含在目标文件中的变量、函数、类等列表不是更好吗,因此在链接使用此库的可执行文件或共享对象时可以从静态库中相互依赖的事物上已经执行的优化传递中获利?

静态库的创建不会花费太多时间(无论如何,只有有限数量的优化是可能的),但是使用这个库的后续构建步骤会更快/最优。

PS:我在这里主要谈论链接时间优化,但是由于所有流行的工具链都以拥有此功能而自豪,我敢肯定这个问题会以某种方式弹出?请不要用以下方式回答这个问题:它一直都是这样,或者兼容性没有人想过要改变它。那不是我要找的...

0 投票
4 回答
13506 浏览

c++ - “对象文件”中的“对象”是什么,为什么这样称呼它?

我被问到一个问题:“什么是'目标文件'?”。

看了Wiki,只知道里面有对象

但是这些对象是什么,为什么有人这样称呼它们?

0 投票
1 回答
603 浏览

debugging - 如何调试具有多个目标文件的 fortran 程序?

我有一个调用一些依赖 .o 目标文件的 fortran 程序。我希望能够在调试时跨文件,这可能吗?

编译例程是这样的:

其中analyze.x 是可执行文件。所有 .o 文件也已使用 -g 标志编译。当我 (gdb) break main 然后尝试单步执行程序时,大多数子例程都发生在目标文件中。我想知道是否也可以单步执行目标文件代码。

0 投票
1 回答
1467 浏览

java - LWJGL .OBJ 文件阅读器有时会变形或不呈现文件

我正在和一些朋友一起开发一款游戏,为了让生活更轻松,我决定使用 .obj 文件制作所有的 3D 模型,并在 3DSMax、Maya 和 Blender3D 等程序中导出。

所以我写了一个 .obj 文件阅读器并在一个简单的场景中进行了尝试,一些 .obj 文件渲染得很好(就像一个简单的立方体),一些渲染得很奇怪,然后一些根本没有渲染。我希望有人能指出我做错了什么,下面的代码包含一个类,有 2 个嵌入式类,其中一个包含另一个嵌入式类。它可能会让人感到困惑,因此您可以在需要时复制并粘贴到文件中以便于阅读。

脚本在文件中逐行读取,如果它以“v”(顶点)开头,它会按空格分割行,并采用索引 1 2 和 3(xy 和 z)并将整数值存储在名为 Vertex 的类中,并将其添加到顶点对象数组中。Vertex 对象就像一个向量,只是它包含两个向量,一个用于位置,一个用于法线。

如果该行以“vn”(顶点法线)开头,它将用“”分割该行并获取索引 1 2 和 3,然后添加到顶点对象,到目前为止,该对象的作用就像一个向量,然后添加该顶点到专门用于法线的不同顶点数组。

现在这是有趣的部分,当该行以“f”(Face)开头时,该行可能如下所示:

每个#1//#2,#1 是正确顶点的索引,#2 是正确法线的索引。所以我取线的每一部分,用“”分割并用“//”分割,并从顶点数组中取出顶点,从法线数组中取出顶点,将顶点法线设置为法线的xy和z,制作了一个 Face 对象,并将其添加到一个面列表中,这些面仅包含 3 或 4 个 Vertex 对象。

希望这个解释可能会使文件看起来不那么混乱。

好吧,这里是代码:

0 投票
3 回答
15900 浏览

c++ - 可以读取目标文件吗?

我对文件很好奇.obj:我几乎不知道它们是什么(或它们包含什么),所以我用 Vim 文本编辑器打开它们,我发现里面是一种类似外星人的语言......

有什么方法可以理解它们代表什么以及它们的内容是什么另外,它们的用途是什么?

谢谢。

0 投票
2 回答
382 浏览

c - 有没有办法在 GCC 中编译程序而不用汇编?

可能重复:
使用 GCC 生成可读程序集?

例如,当我尝试:

gcc -c 我的程序

它会给我一个二进制形式的目标文件。我想得到的只是一个汇编文件(就在它被汇编程序处理以生成目标文件之前)。有没有办法在 gcc 中做到这一点?

0 投票
3 回答
210 浏览

c - 编译器在生成其目标代码时是否必须经过汇编级别?

可能的重复:
编程语言编译器首先转换为汇编还是直接转换为机器代码?

例如:

上面的命令将生成 myprogram.o,它是一个目标文件。我想在内部知道,GCC 是否必须经过汇编程序步骤?例如:

0 投票
1 回答
6857 浏览

c++ - 在 Visual Studio C++ 中编译项目时生成目标文件“.o”

我正在尝试在 Microsoft Visual Studio C++ 2010 中生成我的项目的“.cpp”文件的“.o”输出。

我已经找到了答案,说要在没有链接的情况下进行编译,您只需按 Ctrl+F7,但是该目标文件是在哪里创建的?

0 投票
2 回答
1244 浏览

cmake - 如何使用 CMake 直接从目标文件构建库

给定一组目标文件,您将如何使用 CMake 构建静态库?

使用自动工具我会做

OBJFILES 是目标文件的列表。

如何在 CMake 中做到这一点?

编辑:我无法重新编译原始 cxx 文件,我必须使用目标文件 (*.o) 来创建库。