问题标签 [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.
binary - 如何从可执行文件/目标文件中查看 0 和 1/机器代码?
我已经试过了,我用文本编辑器打开了一个 a.out 文件,但我只得到一堆字符,里面有一些指令,比如:
üÙ
c - 跟踪 C 内存错误的实现工具,查找从何处调用我的覆盖 malloc 等
我被要求实现一个工具(用于 linux),它有助于 C/C++ 程序的内存管理。主要目标是追踪内存泄漏,但我也在检查 memcpy 的重叠参数等。
我实际上需要我的版本来拦截对这些函数的所有调用(例如来自其他库),所以我实际上需要覆盖它们。所以我不能使用所有帖子中建议的#define 技巧。我的问题是如何找到原始源文件名、调用函数和行号。
到目前为止,我唯一的想法是使用调试信息编译程序并开始深入研究目标文件(ELF,因为我使用的是 linux)。我从来没有玩过目标文件,我只知道汇编语言的基础知识,所以这似乎是一项艰巨的任务。
有没有其他更简单的方法来实现这一点?如果没有任何从事过类似工作的人可以帮助我开始:)?。
谢谢
d - 预编译的 Windows OMF BLAS/LAPACK?
有没有什么地方可以得到 OMF 对象格式的 Windows 预编译的 BLAS 和 LAPACK 二进制文件?我想将一些 D 语言代码链接到这些。我知道在哪里可以获得COFF 格式的相关库。我也知道 objconv 工具,它将 COFF 转换为 OMF,尽管由于我不完全理解的原因,这在实践中似乎不起作用。这些似乎与符号中的下划线有关,尽管我尝试了几乎所有处理这些的设置,但似乎没有一个有效。
或者,是否有人知道如何将参考二进制文件转换为 OMF,以便它们实际上正确链接到 DMD 编译的代码?作为最后的手段,有谁知道如何让 CLAPACK、CBLAS 和 F2CLIB 与 DMC 一起构建?这些附带的构建过程似乎完全面向 GCC 工具链。
windows - 使用 gcc 创建 16 位 .COM 可执行文件
.COM executables
有没有办法使用 Windows 的一些 gcc 发行版(例如 MINGW)创建 16 位(DOS)?
assembly - 如何为 MMIX 链接多个汇编文件
假设,我写了一个小库来实现一些“fprint”——可能。教我 MMIX 的书(Das MMIX-Buch,德语)总是将整个库复制到新程序中,但我不喜欢这种方法。有没有办法将库组装成一个目标文件,主程序组装成另一个并将这两个链接在一起?这该怎么做?
c++ - 为什么要先编译成目标文件?
去年,我在一所研究型大学工作,开始使用 Fortran 进行编程。我之前的大部分经验都是使用 PHP 或旧 ASP 等 Web 语言,所以我是编译语句的新手。
我正在修改两个不同的代码。
在创建可执行文件之前,有一个明确的语句从模块创建 .o 文件(例如 gfortran -c filea.f90)。
另一种是直接创建可执行文件(有时会创建 .mod 文件,但不创建 .o 文件,例如 gfortran -o executable filea.f90 fileb.f90 mainfile.f90)。
- 是否有理由(可能除了 Makefiles 之外)一种方法优于另一种方法?
c++ - 我可以将一个编译器制作的目标文件链接到另一个编译器制作的目标文件吗?
更具体地说,假设两个编译器都在同一个平台上(操作系统+指令集)。但是,其中一个目标文件是由依赖于编译器的代码制成的。另一方面 - 代码是面向对象的并且尊重封装。
我需要这个作为我正在制作的一种框架。目标平台是 GCC 和 Java 虚拟机的任何系统。实际上,该框架将在每个平台上编译。使用框架用户的编译器由他决定。
c++ - C/C++。库相对于组合目标文件的优势
虽然在一个库中组合多个目标文件是司空见惯的,但可以(至少在 Linux 中)将多个目标文件组合成另一个目标文件。
(请参阅将两个 GCC 编译的 .o 目标文件合并到第三个 .o 文件中)
由于使用库而不是仅组合目标文件有缺点:
1:链接时只使用一种类型的文件(对象)更容易,特别是如果所有文件都做同样的事情。
2:链接时(至少在GCC中),库(默认)需要排序,不能处理循环依赖。
我想知道图书馆有什么优势(除了第 22 条它们被大量使用)。
搜索了一段时间后,我得到的唯一解释似乎是单个库比多个目标文件更好。
macos - 无法使用 ld 在 Mac OS X 中链接程序集文件
我正在尝试使用 64 位 Mac OS X Lion 运行基本程序集文件,使用默认情况下随 Xcode 安装的 nasm 和 ld。
我已经编写了一个汇编文件,它打印一个字符,并使用 nasm 构建它。
nasm -f elf -o program.o main.asm
但是,当我将它与 ld 链接时,它会失败并出现很多错误/警告:
ld -o program program.o
所以,我试图纠正其中的一些问题,但一无所获。
这是我尝试过的一件事:
ld -arch i386 -e _start -o program program.o
我认为这会起作用,但我错了。
您如何使目标文件成为 nasm 和 ld 同意的兼容架构?
另外,您将如何定义程序中的入口点(现在我正在使用global _start
in .section text
,在上面_start
,这似乎并没有多大用处。)
对于如何使用 ld 成功地将目标文件链接到二进制文件,我有点困惑,我想我只是遗漏了一些让他们同意的代码(或 nasm 或 ld 的参数)。
任何帮助表示赞赏。
c++ - WxWidgets 编译帮助
我尝试编译 WxWidgets (Latest; VC9; Release),但它只输出 *.obj 和 *.pch 文件,没有 *.lib 文件。我知道 *.obj 文件是对象文件,而 *.pch 文件是预编译头文件,但是我是从 C++ 引用它们还是我必须以某种方式将它们转换为 *.lib 文件。
顺便说一句,我从未使用过 *.pch 并且对它们一点也不熟悉。我现在才使用 C++ 几个月...