问题标签 [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 回答
2224 浏览

windows - Windows 可执行文件结构

我知道通常目标文件有代码、数据、堆和堆栈部分。
但我想知道这在 Windows 可执行文件和 Linux 可执行文件中是如何排列的。
我在互联网上搜索并找到了一些结构。
我知道 .text 用于代码, .data 用于全局变量。
我想知道这里是 Linux 和 Windows 平台中的堆栈和堆?
谁能告诉我可执行文件结构?

提前致谢...

0 投票
0 回答
667 浏览

compiler-construction - 更改 ELF 字节序数据格式

我正在尝试编辑一些软件以同时使用 Big Endian ELF/DWARF 文件和 Little Endian ELF/DWARF 文件。为此,我认为拥有相同数据的 Little ELF 文件和 Big ELF 文件是个好主意。我在编译器中使用一个简单的程序来创建一个 ELF 目标文件,但是目标文件总是按照我正在使用的芯片架构的字节序进行格式化。有没有办法在单个芯片上获得单个程序的两个字节顺序?

谢谢。

0 投票
3 回答
129 浏览

c - 有没有办法获取 .exe 中包含的静态链接函数并重用它们?

例如:

说我已经链接myprogram.objmyprogram.libmyprogam.exe

如果myprogram.lib其中包含各种特殊功能,并且我不小心删除了它(和源),有没有办法可以挖掘myprogram.exe并取出这些功能?或者甚至只是以某种方式转换myprogram.exe.lib文件并且只引用我需要的部分?

0 投票
3 回答
2404 浏览

c++ - C++ 目标文件的大小取决于什么?

每当我们编译一个 c++ 文件时,都会生成一个 obj 文件。我想知道 obj 文件的大小取决于哪些因素?

只是为了让我的问题更清楚,例如一个 c++ 文件包含一个类声明,这个类有 1 个整数变量作为数据成员,并且还有一些成员函数。如果我编译这个文件,那么将创建一些 X 大小的 obj 文件。现在假设我添加了更多的数据成员和成员函数,那么obj文件的大小会改变吗?

0 投票
2 回答
4501 浏览

c++ - 将 .o(C 对象文件)链接到 Linux 上的 C++ 文件/项目

我在linux中的.o文件有问题,如下所示:

我有调用函数 ECL_Drawrect() 的 Visual.cpp,该函数定义为:

在我的 Visual.cpp 中,我还将“ecl.h”包括为:

问题是函数 ECL_bDrawrect 在ecl.o文件中,我不知道如何链接它以使用上面提到的函数。

经过一番研究,我发现并设置如下:

ecl.o 路径也包含在我的项目中,当我编译时出现此错误:

不知道链接对不对?如何以正确的方式链接此 ecl.o 文件?

p/S:我在 ubuntu 11.04 64 位中使用 eclipse CDT,而ecl.o用于 32 位,这就是为什么我必须将 -m32 放到 g++ 中。

0 投票
1 回答
143 浏览

trie - mmo 对象格式的符号表中使用的尝试如何工作?

我试图了解mmo目标文件格式是如何工作的,它用于 Don Knuth 的教育MMIX架构。MMIXware我没买过,所以只能从汇编器和模拟器的文字源文件中猜测大部分细节。

对象格式使用特殊的三元搜索树来存储符号表。看一下代码,我不太明白它是如何工作的。有人可以向我解释一些细节吗?特别是关于树是如何序列化的。

0 投票
1 回答
558 浏览

c++ - 在 C++ 项目之间共享中间文件?

我目前正在尝试弄清楚两个不同的本机 Visual-C++ 项目(具有完全相同的编译器设置)是否可以共享它们的中间文件(obj、pch、...)

一个例子应该有帮助:

这是一个正常的设置:

这个设置怎么样:

我可以为两个 C++ 项目使用相同的中间文件夹,从而obj直接共享文件吗?

还是我总是需要一个额外的静态库项目?(据我了解,静态库只是文件的容器obj


我为什么要这样做?查看这篇博文:在 Visual Studio 中为 Native C++ 编写单元测试

它使用静态库的唯一目的是拥有两个不同的可执行文件(主要功能,如果你愿意的话)。(忘记托管/CLI 的东西。)这意味着你的解决方案中有 3 个项目(必须维护三个项目),当你真的只想要两个项目共享相同的代码和相同的编译设置但使用不同的 main/startup索具。

0 投票
6 回答
150453 浏览

c - 什么是 C 中的目标文件?

我正在阅读 C 中的库,但我还没有找到关于什么是目标文件的解释。任何其他编译文件和目标文件之间的真正区别是什么?
如果有人能用人类语言解释,我会很高兴。

0 投票
3 回答
128 浏览

c - C中的一对一链接

有没有办法在 C 中实现目标文件的链接,使得某些对象只能相互链接?

例如。尝试链接对象 1 和对象 2 将起作用并生成一个有效的可执行文件,但尝试链接对象 1 和对象 3 将返回错误,或者生成的可执行文件将无法正常工作。

背景信息:基本上,情况是程序员A和程序员B将他们的对象发送到链接器公司。A 和 B 希望确保 Linker Company只能将他们的对象链接在一起,而不能将他们的对象与其他 Programmers(即 Programmer C 等)对象链接(因为这是非法的)。

Jörgen Sigvardsson 的回答很有用,但我想知道是否有更简单的方法。例如。如果尝试使用 gcc 将非法对象链接在一起,Linker Company 可以确定需要哪些符号并将它们添加到非法对象中,从而轻松打破限制。

0 投票
1 回答
280 浏览

c++ - 没有 .cc 文件的 .o 文件的 C++ 编译

我有一个程序,我得到了编译的 .o 文件,但我没有原始的 .cc 文件,而且我只有一个完成一半的头文件。头文件具有所有方法签名,但缺少私有变量声明。我试图让这个 .o 文件与项目一起使用,但在 .o 文件定义的类的构造函数中出现分段错误。程序编译。我怎样才能让它工作?该程序是家庭作业,老师不希望我们看到 .cc 文件。我的老师也知道这个问题。我只是想自己弄清楚(希望在你们的帮助下:))。我以为我之前和另一位老师做过这个,但没有任何问题。有一个用于编译程序的makefile。