26得票3回答
针对Mac / iPhone的objcopy等效工具是什么?

我想将目标文件(.o)中的符号重命名为Mac版binutils的objcopy --redefine-syms 工具等价的东西。 我没有找到arm-apple-darwin10-objcopy。我尝试过MacPorts的arm-elf-binutils端口,也试图使用otool和segedi...

25得票2回答
如何使用only-keep-debug反转objcopy的strip?

在现代Linux中,几乎所有的对象都被剥离并分为两个部分(两个文件)。第一个是可执行文件本身,第二个是从原始ELF文件中剥离出来的调试符号。这些文件是用以下方式创建的:objcopy --only-keep-debug original.elf binary.dbg mv original.e...

22得票1回答
如何移除特定的ELF节(section),而不会剥离其他符号?

我有一个 ELF 32 位 x86 文件,其中包含一个 .eh_frame 部分,尽管我试图1删除它。 我想删除 .eh_frame 部分,而不触动其他部分中的任何符号,包括未使用的符号。 strip 似乎没有 --remove-only 选项,并且它总是会修改其他部分。 如何在不修改文...

20得票1回答
如何将文本文件的内容作为一个节添加到ELF文件中?

我有一个NASM汇编文件,在Intel-64 Linux上组装和链接。 有一个文本文件,我希望文本文件的内容以字符串形式出现在生成的二进制文件中。该二进制文件是一个ELF可执行文件。 我的计划是在ELF文件中创建一个新的只读数据段(相当于传统的.rodata节)。 理想情况下,将有一种工...

15得票3回答
GCC:如何告诉GCC将'main'函数放在.text节的开头?

我刚开始学习一些ARM编程,遇到了一个稍微有点烦人的问题。我正在使用Sourcery CodeBench Lite 2013.05-23(可以在此处找到:https://sourcery.mentor.com/GNUToolchain/release2449)来编译我的源代码。 我需要告诉G...

14得票1回答
同时分离符号并去除不必要的符号

我希望创建一个外部符号文件,我会使用objcopy --add-gnu-debuglink=...从我的ELF文件中引用它。 现在,我知道如何仅提取调试符号(objcopy --only-keep-debug),以及如何仅剥离调试符号(objcopy --strip-debug)。 然而,...

14得票1回答
使用objcopy --redefine-syms时绑定失败

前提条件 第三方提供了一个 C++ 可执行文件 fooapp,它使用了一个共享对象 libfoo.so。该库还附带有一个头文件 foo.hpp,以便开发人员可以构建其他应用程序: /* foo.hpp */ namespace foo { void bar(int a, int b);...

13得票5回答
objcopy将目录路径名添加到符号名称前

我试图使用objcopy将文本文件的二进制形式包含到可执行文件中。(在运行时,我需要将该文件作为字符串使用)。这很好用,直到链接器需要从符号名称找到引用。问题在于,objcopy在符号名称前面加上了文件的路径名。由于我正在使用GNU Autotools来发布软件包,这个预先添加的路径名会发生更...

11得票1回答
CMake保存剥离的调试信息

通常的做法是使用带有调试符号的编译器编译,然后使用 objcopy 将可执行文件和调试信息分离(然后将其打包到单独的软件包中或存储在符号服务器上)。 如何在 CMake 中正确地分离调试符号?我只看到了一些讨论和不完整的代码示例。 操作系统是Linux,并且使用的编译器是GCC。

9得票3回答
能否在对象模块中覆盖静态函数(gcc、ld、x86、objcopy)?

有没有办法在对象模块中覆盖静态作用域函数? 如果我从以下代码开始,具有全局符号“foo”的模块是一个调用本地符号“bar”的函数,而后者又调用本地符号“baz”的函数。 [scameron@localhost ~]$ cat foo.c #include <stdio.h> s...